{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2018-02-08", "build": "10.2", "major": "10", "minor": 2, "manual": "10", "status": "stable", "doc_git": "", "version": "10.2", "eol_date": "2022-11-10", "date_text": "2018-02-08", "supported": false, "manual_url": "/docs/10/release-10-2.html", "source_url": "/docs/release/10.2/", "entry_count": 65, "placeholder": false, "content_hash": "e74aee886f03fb654b696010a819221463e3333290ca80ee13751add6873c0a4", "manual_build": "10.23", "source_as_of": "", "changes_count": 65, "doc_loaded_at": "2026-09-26T02:56:43.207462", "migration_html": "<p>对于运行 10.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果使用了 <code>contrib/cube</code> 的 <code>~&gt;</code> 操作符，请参阅下方相关条目。</p>\n<p>此外，如果是从早于 10.1 的版本升级，请参见<a href=\"/docs/10/release-10-1.html\" title=\"E.23. 发布版本 10.1\">第 E.23 节</a>。</p>", "compatibility_count": 0, "label": "10.2", "status_label": "历史版本", "eol": "2022-11-10", "age_days": 3156, "support_days": -1420}, "groups": [{"date": "2018-02-08", "build": "10.2", "major": "10", "minor": 2, "manual": "10", "status": "stable", "doc_git": "", "version": "10.2", "eol_date": "2022-11-10", "date_text": "2018-02-08", "supported": false, "manual_url": "/docs/10/release-10-2.html", "source_url": "/docs/release/10.2/", "entry_count": 65, "placeholder": false, "content_hash": "e74aee886f03fb654b696010a819221463e3333290ca80ee13751add6873c0a4", "manual_build": "10.23", "source_as_of": "", "changes_count": 65, "doc_loaded_at": "2026-09-26T02:56:43.207462", "migration_html": "<p>对于运行 10.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果使用了 <code>contrib/cube</code> 的 <code>~&gt;</code> 操作符，请参阅下方相关条目。</p>\n<p>此外，如果是从早于 10.1 的版本升级，请参见<a href=\"/docs/10/release-10-1.html\" title=\"E.23. 发布版本 10.1\">第 E.23 节</a>。</p>", "compatibility_count": 0, "label": "10.2", "status_label": "历史版本", "eol": "2022-11-10", "age_days": 3156, "support_days": -1420, "entries": [{"id": "10.2-0432894731f541ff", "cves": ["CVE-2018-1052"], "html": "<p>修复对包含多个表达式的分区键的处理（Álvaro Herrera，David Rowley）</p>\n<p>此错误会导致崩溃；对于恶意构造的输入，还会泄露后端的任意内存内容。（CVE-2018-1052）</p>", "text": "修复对包含多个表达式的分区键的处理（Álvaro Herrera，David Rowley） 此错误会导致崩溃；对于恶意构造的输入，还会泄露后端的任意内存内容。（CVE-2018-1052）", "title": "修复对包含多个表达式的分区键的处理", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "9496f4b7a26cb65f91f66b1de6d9e3186375831e607a96f8c76ca963071ebc23", "section_path": ["变更"], "commit_groups": [["3492a0af0", "fe921a360"]], "identity_text": "Fix processing of partition keys containing multiple expressions (Álvaro Herrera, David Rowley) This error led to crashes or, with carefully crafted input, disclosure of arbitrary backend memory. (CVE-2018-1052)", "commit_aliases": ["3492a0af0", "fe921a360"], "source_commits": ["fe921a360"], "source_entry_id": "10.2/changes/001", "db_id": "f563d0447a8f6788d0a6d1af15dc62c1", "patch_ids": ["c44ec6d4de7d73e38f90dbf511f12680"], "statement_hash": "83ebc74af3fafcf680a3d461e3d405ffcaed991295903f5f14e1bda9d8d78c0b", "relations": [], "version": "10.2", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-ea7c7e256e617d2a", "cves": ["CVE-2018-1053"], "html": "<p>确保 <span>pg_upgrade</span> 创建的所有临时文件都不会允许所有用户读取（Tom Lane，Noah Misch）</p>\n<p><span>pg_upgrade</span> 通常将临时文件限制为只有调用用户可以读写。但是，如果用户的 <code>umask</code> 设置允许，包含 <code>pg_dumpall -g</code> 输出的临时文件就可以被同组用户或所有用户读取，甚至写入。在多用户机器上的典型用法中，<code>umask</code> 或工作目录的权限通常足够严格，能够防止问题；但某些 <span>pg_upgrade</span> 使用场景中，这一疏漏可能让不怀好意的人获知数据库密码。（CVE-2018-1053）</p>", "text": "确保 pg_upgrade 创建的所有临时文件都不会允许所有用户读取（Tom Lane，Noah Misch） pg_upgrade 通常将临时文件限制为只有调用用户可以读写。但是，如果用户的 umask 设置允许，包含 pg_dumpall -g 输出的临时文件就可以被同组用户或所有用户读取，甚至写入。在多用户机器上的典型用法中，umask 或工作目录的权限通常足够严格，能够防止问题；但某些 pg_upgrade 使用场景中，这一疏漏可能让不怀好意的人获知数据库密码。（CVE-2018-1053）", "title": "确保 pg_upgrade 创建的所有临时文件都不会允许所有用户读取", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "d31e2cbd96d47c61c943dc69e3f020a5291590a03a31378df5a886c28d4e698d", "section_path": ["变更"], "commit_groups": [["1341e017d", "17aa02368", "6ba52aeb2", "9c59e48a2", "a926eb84e", "c3456208d"]], "identity_text": "Ensure that all temporary files made by pg_upgrade are non-world-readable (Tom Lane, Noah Misch) pg_upgrade normally restricts its temporary files to be readable and writable only by the calling user. But the temporary file containing pg_dumpall -g output would be group- or world-readable, or even writable, if the user's umask setting allows. In typical usage on multi-user machines, the umask and/or the working directory's permissions would be tight enough to prevent problems; but there may be people using pg_upgrade in scenarios where this oversight would permit disclosure of database passwords to unfriendly eyes. (CVE-2018-1053)", "commit_aliases": ["1341e017d", "17aa02368", "6ba52aeb2", "9c59e48a2", "a926eb84e", "c3456208d"], "source_commits": ["6ba52aeb2"], "source_entry_id": "10.2/changes/002", "db_id": "fa6f83f05c1fadac3a27a2a9b3013242", "patch_ids": ["43990384724aa35881163af2c641beff"], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372", "relations": [{"rule": 2, "type": "equivalent", "target": "3e27a2a85656b964f66c860c70248836", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}}, {"rule": 2, "type": "equivalent", "target": "502a24d61bdbdddb5ce51397266ec1e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}}, {"rule": 2, "type": "equivalent", "target": "83f37cc5a00730f2f6efdc8b47a82ae5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}}, {"rule": 2, "type": "equivalent", "target": "a787a63eb7d46a13fb49da1d7154952c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}}], "version": "10.2", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "502a24d61bdbdddb5ce51397266ec1e3", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}, "url": "/docs/compare/?release=9.6.7#9.6.7-107a7027695be69a", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "3e27a2a85656b964f66c860c70248836", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}, "url": "/docs/compare/?release=9.5.11#9.5.11-107a7027695be69a", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "a787a63eb7d46a13fb49da1d7154952c", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}, "url": "/docs/compare/?release=9.4.16#9.4.16-107a7027695be69a", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "83f37cc5a00730f2f6efdc8b47a82ae5", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "确保 pg_upgrade 创建的所有临时文件对其他用户不可读", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "6dd22481d519ada003cf3022956ebe0c3ac5fbe8a27e2352c0e114ad33528372"}, "url": "/docs/compare/?release=9.3.21#9.3.21-107a7027695be69a", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-c27385d0da6e0f24", "cves": [], "html": "<p>修复对持有键共享锁期间被更新的元组的清理（Andres Freund，Álvaro Herrera）</p>\n<p>在某些情况下，即使这些元组已失效，<code>VACUUM</code> 也不会移除它们，从而导致各种数据损坏。</p>", "text": "修复对持有键共享锁期间被更新的元组的清理（Andres Freund，Álvaro Herrera） 在某些情况下，即使这些元组已失效，VACUUM 也不会移除它们，从而导致各种数据损坏。", "title": "修复对持有键共享锁期间被更新的元组的清理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "652d87e83e8a3c0ec9d62589ee7beb808caccf9a7960f0607644c08627b211de", "section_path": ["变更"], "commit_groups": [["1224383e8", "32c0295b1", "387abe870", "4eff5a8c9", "937494c0e", "9c2f0a6c3"]], "identity_text": "Fix vacuuming of tuples that were updated while key-share locked (Andres Freund, Álvaro Herrera) In some cases VACUUM would fail to remove such tuples even though they are now dead, leading to assorted data corruption scenarios.", "commit_aliases": ["1224383e8", "32c0295b1", "387abe870", "4eff5a8c9", "937494c0e", "9c2f0a6c3"], "source_commits": ["1224383e8"], "source_entry_id": "10.2/changes/003", "db_id": "2a6b2f9569c99147470015ad187b73cd", "patch_ids": ["b19733c24dfa08054e313a5cf743c596"], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4", "relations": [{"rule": 2, "type": "equivalent", "target": "578e6835f4779011e8832306cd6043a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}}, {"rule": 2, "type": "equivalent", "target": "7131bc8c16e7a2bcdc9804fe19434a5a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}}, {"rule": 2, "type": "equivalent", "target": "f216ffc4af1e2efa4c6cbec02cfda9a9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}}, {"rule": 2, "type": "equivalent", "target": "f46cd1a709ac4d44c8b5ef458c63bb01", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "578e6835f4779011e8832306cd6043a0", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复对在键共享锁定下被更新的元组的清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}, "url": "/docs/compare/?release=9.6.7#9.6.7-ee9c4dbe720c9a4a", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "7131bc8c16e7a2bcdc9804fe19434a5a", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复对在键共享锁定下被更新的元组的清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}, "url": "/docs/compare/?release=9.5.11#9.5.11-ee9c4dbe720c9a4a", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "f46cd1a709ac4d44c8b5ef458c63bb01", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复对在键共享锁定下被更新的元组的清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}, "url": "/docs/compare/?release=9.4.16#9.4.16-ee9c4dbe720c9a4a", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "f216ffc4af1e2efa4c6cbec02cfda9a9", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复对在键共享锁定下被更新的元组的清理", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c8ad791f7bf84f5505a2365b8e22d4c29e36943486f64cccbe995c52c6650bb4"}, "url": "/docs/compare/?release=9.3.21#9.3.21-ee9c4dbe720c9a4a", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-118e47fab70d1cc9", "cves": [], "html": "<p>修复添加新溢出页后未将 hash 索引元数据页标记为脏的问题，该问题可能导致索引损坏（Lixian Zou，Amit Kapila）</p>", "text": "修复添加新溢出页后未将 hash 索引元数据页标记为脏的问题，该问题可能导致索引损坏（Lixian Zou，Amit Kapila）", "title": "修复添加新溢出页后未将 hash 索引元数据页标记为脏的问题，该问题可能导致索引损坏", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "b7f2c1b86902b1d07f3f8192f07548fa9956c257fef2f294621f1042ff3d31ba", "section_path": ["变更"], "commit_groups": [["ad25a6b1f", "b94988fad"]], "identity_text": "Fix failure to mark a hash index's metapage dirty after adding a new overflow page, potentially leading to index corruption (Lixian Zou, Amit Kapila)", "commit_aliases": ["ad25a6b1f", "b94988fad"], "source_commits": ["b94988fad"], "source_entry_id": "10.2/changes/004", "db_id": "814fa536c920e33459f5ab5feba0cbeb", "patch_ids": ["926cd277f6562ed4d5c92bd69bf9fc81"], "statement_hash": "59e7204392db219a57734fa9c0645e93c67beef9a5ad7d342ba63be52dee9429", "relations": [], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-45e1c923006d9fab", "cves": [], "html": "<p>确保清理始终会清理 GIN 索引的待插入列表（Masahiko Sawada）</p>\n<p>这是确保死亡索引条目被删除的必要条件。旧代码将逻辑弄反了，允许清理在其他进程并发执行清理时跳过该步骤，因此存在将无效条目留在索引中的风险。</p>", "text": "确保清理始终会清理 GIN 索引的待插入列表（Masahiko Sawada） 这是确保死亡索引条目被删除的必要条件。旧代码将逻辑弄反了，允许清理在其他进程并发执行清理时跳过该步骤，因此存在将无效条目留在索引中的风险。", "title": "确保清理始终会清理 GIN 索引的待插入列表", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "12758b36089aaed3e5625883356fb2a465dfd8e05b7346fd8c5cee69a5effb8f", "section_path": ["变更"], "commit_groups": [["19648ce55", "3b2787e1f", "c8df4831e"]], "identity_text": "Ensure that vacuum will always clean up the pending-insertions list of a GIN index (Masahiko Sawada) This is necessary to ensure that dead index entries get removed. The old code got it backwards, allowing vacuum to skip the cleanup if some other process were running cleanup concurrently, thus risking invalid entries being left behind in the index.", "commit_aliases": ["19648ce55", "3b2787e1f", "c8df4831e"], "source_commits": ["c8df4831e"], "source_entry_id": "10.2/changes/005", "db_id": "b052376bfcaef1ae4208dc25fdf5d24e", "patch_ids": ["26177b6562f8a3060ad6b6c823180a3a"], "statement_hash": "76b4a9828b68ca6c3b82cc1056de5eea5b938a6794b1b4ed051156cad5908aef", "relations": [{"rule": 2, "type": "equivalent", "target": "3194dc650475d6976ab52d8f1a97adf3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76b4a9828b68ca6c3b82cc1056de5eea5b938a6794b1b4ed051156cad5908aef"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3194dc650475d6976ab52d8f1a97adf3", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "确保 vacuum 总是清理 GIN 索引的未决插入列表", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "76b4a9828b68ca6c3b82cc1056de5eea5b938a6794b1b4ed051156cad5908aef"}, "url": "/docs/compare/?release=9.6.7#9.6.7-0681a4ec2b9cebb2", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}]}, {"id": "10.2-6f93932d3958da2d", "cves": [], "html": "<p>修复某些 LSN 读取操作中缓冲区加锁不充分的问题（Jacob Champion，Asim Praveen，Ashwin Agrawal）</p>\n<p>这些错误可能导致并发负载下的异常行为。其潜在后果尚未完全确定。</p>", "text": "修复某些 LSN 读取操作中缓冲区加锁不充分的问题（Jacob Champion，Asim Praveen，Ashwin Agrawal） 这些错误可能导致并发负载下的异常行为。其潜在后果尚未完全确定。", "title": "修复某些 LSN 读取操作中缓冲区加锁不充分的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "2692b357acb41c0c8e5820d517e69d9077c6d4ffe7a2696ce6aa7dc6fff612cf", "section_path": ["变更"], "commit_groups": [["012683866", "272c2ab9f", "37dd11281", "38a23790e", "469fa9ad6", "c61879640"]], "identity_text": "Fix inadequate buffer locking in some LSN fetches (Jacob Champion, Asim Praveen, Ashwin Agrawal) These errors could result in misbehavior under concurrent load. The potential consequences have not been characterized fully.", "commit_aliases": ["012683866", "272c2ab9f", "37dd11281", "38a23790e", "469fa9ad6", "c61879640"], "source_commits": ["37dd11281"], "source_entry_id": "10.2/changes/006", "db_id": "82385f5d32d884d22eed0db877d748be", "patch_ids": ["a4eb1671ca62c2fdac3341ffdaedc9db"], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5", "relations": [{"rule": 2, "type": "equivalent", "target": "2d24e732ff8f4bf60445f8ca110160ff", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}}, {"rule": 2, "type": "equivalent", "target": "7bb15c94de58df30ec8b8a47c835f471", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}}, {"rule": 2, "type": "equivalent", "target": "c6fdf4a4bb76269450a22fb6669dce9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}}, {"rule": 2, "type": "equivalent", "target": "cbe59a3d9acef7ea5d799d47bce471b6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2d24e732ff8f4bf60445f8ca110160ff", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复某些 LSN 获取中不充分的缓冲区锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}, "url": "/docs/compare/?release=9.6.7#9.6.7-558ce9ee604e2cc5", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "c6fdf4a4bb76269450a22fb6669dce9e", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复某些 LSN 获取中不充分的缓冲区锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}, "url": "/docs/compare/?release=9.5.11#9.5.11-558ce9ee604e2cc5", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "7bb15c94de58df30ec8b8a47c835f471", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复某些 LSN 获取中不充分的缓冲区锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}, "url": "/docs/compare/?release=9.4.16#9.4.16-558ce9ee604e2cc5", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "cbe59a3d9acef7ea5d799d47bce471b6", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复某些 LSN 获取中不充分的缓冲区锁定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2fdf21253cff1d6e2b11e41b8b952086c87381ddcf2bf60a738711cf34c146e5"}, "url": "/docs/compare/?release=9.3.21#9.3.21-558ce9ee604e2cc5", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-7577be21878be348", "cves": [], "html": "<p>修复展平输出用于 <code>GROUPING SETS</code> 的子查询时产生不正确查询结果的问题（Heikki Linnakangas）</p>", "text": "修复展平输出用于 GROUPING SETS 的子查询时产生不正确查询结果的问题（Heikki Linnakangas）", "title": "修复展平输出用于 GROUPING SETS 的子查询时产生不正确查询结果的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "64016d77cda9c673851f763285a2cb394f0263bafdc7a907b28ab0fe5b4b2730", "section_path": ["变更"], "commit_groups": [["6520d4a96", "90947674f", "d3ca1a6c3", "ff99d7761"]], "identity_text": "Fix incorrect query results from cases involving flattening of subqueries whose outputs are used in GROUPING SETS (Heikki Linnakangas)", "commit_aliases": ["6520d4a96", "90947674f", "d3ca1a6c3", "ff99d7761"], "source_commits": ["d3ca1a6c3"], "source_entry_id": "10.2/changes/007", "db_id": "5eff949fb375b872424760800cecea1d", "patch_ids": ["09a0df5dd336845a42f04398929c73ca"], "statement_hash": "21458917a4d7b5687a9910b6104024d1bff708ab774c45d67dd4119b07fcd080", "relations": [{"rule": 2, "type": "equivalent", "target": "1e0db148d19ff96a80e807156fb3b3e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21458917a4d7b5687a9910b6104024d1bff708ab774c45d67dd4119b07fcd080"}}, {"rule": 2, "type": "equivalent", "target": "48a53102476b3fb46a92ca6184adc3ba", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21458917a4d7b5687a9910b6104024d1bff708ab774c45d67dd4119b07fcd080"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1e0db148d19ff96a80e807156fb3b3e5", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复子查询输出用于 GROUPING SETS 时子查询展平相关情况的错误查询结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21458917a4d7b5687a9910b6104024d1bff708ab774c45d67dd4119b07fcd080"}, "url": "/docs/compare/?release=9.6.7#9.6.7-1859f4eeb3e2992d", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "48a53102476b3fb46a92ca6184adc3ba", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复子查询输出用于 GROUPING SETS 时子查询展平相关情况的错误查询结果", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "21458917a4d7b5687a9910b6104024d1bff708ab774c45d67dd4119b07fcd080"}, "url": "/docs/compare/?release=9.5.11#9.5.11-1859f4eeb3e2992d", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}]}, {"id": "10.2-039033e488b77dbb", "cves": [], "html": "<p>修复分区键为布尔或数组类型时对列表分区约束的处理（Amit Langote）</p>", "text": "修复分区键为布尔或数组类型时对列表分区约束的处理（Amit Langote）", "title": "修复分区键为布尔或数组类型时对列表分区约束的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "5532cf16444dd9c28c02a1d065a73b85621cbdc1230238ccb14c5b69b10862af", "section_path": ["变更"], "commit_groups": [["3ccdc6f9a", "86fba2865"]], "identity_text": "Fix handling of list partitioning constraints for partition keys of boolean or array types (Amit Langote)", "commit_aliases": ["3ccdc6f9a", "86fba2865"], "source_commits": ["86fba2865"], "source_entry_id": "10.2/changes/008", "db_id": "868b2f173200b2d6ee2cb358afa2de1e", "patch_ids": ["d57eb9a2d4e6fa3036802f92cf4b29be"], "statement_hash": "a69d82f25d22e463bdf65355c066882796d919ae4766243a44e08e590b5cf5a0", "relations": [], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-99172f192afeae3a", "cves": [], "html": "<p>避免在查询继承树的同时，某个子表被 <code>ALTER TABLE NO INHERIT</code> 从树中移除时发生不必要的失败（Tom Lane）</p>", "text": "避免在查询继承树的同时，某个子表被 ALTER TABLE NO INHERIT 从树中移除时发生不必要的失败（Tom Lane）", "title": "避免在查询继承树的同时，某个子表被 ALTER TABLE NO INHERIT 从树中移除时发生不必要的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "bf579256e3b3670b37f70405ee5969f69343fd07570370ecd69e209daa97c670", "section_path": ["变更"], "commit_groups": [["4e7170058", "55e5eb4d9", "680d54050", "8b0e5e7e7", "a99922f96", "c2a7044a5"]], "identity_text": "Avoid unnecessary failure in a query on an inheritance tree that occurs concurrently with some child table being removed from the tree by ALTER TABLE NO INHERIT (Tom Lane)", "commit_aliases": ["4e7170058", "55e5eb4d9", "680d54050", "8b0e5e7e7", "a99922f96", "c2a7044a5"], "source_commits": ["55e5eb4d9"], "source_entry_id": "10.2/changes/009", "db_id": "12a200b06d9b476c5a0186fd8e184492", "patch_ids": ["b28ae4bc720369fa853695c8e35fd374"], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725", "relations": [{"rule": 2, "type": "equivalent", "target": "0cc55490249e34237083218340c88c0c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}}, {"rule": 2, "type": "equivalent", "target": "1ae9a2ace3d085bedb8f5883b1a43fd9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}}, {"rule": 2, "type": "equivalent", "target": "af9fa0cdaebba6178e8ef3cee771b2d0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}}, {"rule": 2, "type": "equivalent", "target": "df486aeeee65140082a7b3c49b8ffdb2", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "af9fa0cdaebba6178e8ef3cee771b2d0", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}, "url": "/docs/compare/?release=9.6.7#9.6.7-29df6a5b1845e899", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "df486aeeee65140082a7b3c49b8ffdb2", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}, "url": "/docs/compare/?release=9.5.11#9.5.11-29df6a5b1845e899", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "1ae9a2ace3d085bedb8f5883b1a43fd9", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}, "url": "/docs/compare/?release=9.4.16#9.4.16-29df6a5b1845e899", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "0cc55490249e34237083218340c88c0c", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "避免与 ALTER TABLE NO INHERIT 并发地从树中移除某个子表时对继承树的查询不必要的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "cc654b379a0c8eec41d04ee7d796df284eb42e201413f8cb411fbbbf252c6725"}, "url": "/docs/compare/?release=9.3.21#9.3.21-29df6a5b1845e899", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-529c3a77abeb479d", "cves": [], "html": "<p>修复多个会话运行 <code>CREATE INDEX CONCURRENTLY</code> 时误报死锁的问题（Jeff Janes）</p>", "text": "修复多个会话运行 CREATE INDEX CONCURRENTLY 时误报死锁的问题（Jeff Janes）", "title": "修复多个会话运行 CREATE INDEX CONCURRENTLY 时误报死锁的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "8596104b7e570788c506368c179bd9c8b65a8125dcb93df8c5a8f494d4555f8a", "section_path": ["变更"], "commit_groups": [["47a3a1317", "54eff5311", "6d2a9ae0e", "82f1c3b7d", "fb7b43903"]], "identity_text": "Fix spurious deadlock failures when multiple sessions are running CREATE INDEX CONCURRENTLY (Jeff Janes)", "commit_aliases": ["47a3a1317", "54eff5311", "6d2a9ae0e", "82f1c3b7d", "fb7b43903"], "source_commits": ["6d2a9ae0e"], "source_entry_id": "10.2/changes/010", "db_id": "4212e1f3b3e1916a6ba7fcc40ecd4a40", "patch_ids": ["f6b45eb2924920fa4ed75a1fce6820aa"], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532", "relations": [{"rule": 2, "type": "equivalent", "target": "598b8ce23eb7e5f07150c5e0eebe750f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532"}}, {"rule": 2, "type": "equivalent", "target": "7b69a997555b1585a940774080a73459", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532"}}, {"rule": 2, "type": "equivalent", "target": "e9d4f66d5fafb02f5fa5704380c481b7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "7b69a997555b1585a940774080a73459", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复多个会话运行 CREATE INDEX CONCURRENTLY 时的虚假死锁失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532"}, "url": "/docs/compare/?release=9.6.7#9.6.7-7ebbb574b647122d", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "598b8ce23eb7e5f07150c5e0eebe750f", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复多个会话运行 CREATE INDEX CONCURRENTLY 时的虚假死锁失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532"}, "url": "/docs/compare/?release=9.5.11#9.5.11-7ebbb574b647122d", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "e9d4f66d5fafb02f5fa5704380c481b7", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复多个会话运行 CREATE INDEX CONCURRENTLY 时的虚假死锁失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "675b0b8c3696c290e15447ec5ff11f8f3bfb8d96dfa0d1acfc3ea611d4083532"}, "url": "/docs/compare/?release=9.4.16#9.4.16-7ebbb574b647122d", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "10.2-2cd5305d93876318", "cves": [], "html": "<p>在 <code>VACUUM FULL</code> 期间更早更新 <code>pg_class</code> 中表的大小字段（Amit Kapila）</p>\n<p>这避免了重建表上的 hash 索引时出现不良行为，因为 hash 索引使用 <code>pg_class</code> 的统计信息来确定初始 hash 大小。</p>", "text": "在 VACUUM FULL 期间更早更新 pg_class 中表的大小字段（Amit Kapila） 这避免了重建表上的 hash 索引时出现不良行为，因为 hash 索引使用 pg_class 的统计信息来确定初始 hash 大小。", "title": "在 VACUUM FULL 期间更早更新 pg_class 中表的大小字段", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "876ead09c4bc86f3f11cc5a4ff7cc0a357877003f17cbedcca8e5ef4f8f25343", "section_path": ["变更"], "commit_groups": [["ad337c76b", "bdbf29aae"]], "identity_text": "During VACUUM FULL, update the table's size fields in pg_class sooner (Amit Kapila) This prevents poor behavior when rebuilding hash indexes on the table, since those use the pg_class statistics to govern the initial hash size.", "commit_aliases": ["ad337c76b", "bdbf29aae"], "source_commits": ["bdbf29aae"], "source_entry_id": "10.2/changes/011", "db_id": "71a9614f145caadbadd772a14c4e143a", "patch_ids": ["464272131a713702c945747a5a515bb7"], "statement_hash": "c5742c6a50c38993dcd5258675195215bb34a0a1c99bb14bcafcf2885da4dc6c", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-bcd37909c8c7845b", "cves": [], "html": "<p>修复对零列执行 <code>UNION</code>/<code>INTERSECT</code>/<code>EXCEPT</code> 的问题（Tom Lane）</p>", "text": "修复对零列执行 UNION/INTERSECT/EXCEPT 的问题（Tom Lane）", "title": "修复对零列执行 UNION/INTERSECT/EXCEPT 的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "14ee72c9571087f113bc340b80a89d3d4501a4f87b0a79011c9f6e3726b2f9c0", "section_path": ["变更"], "commit_groups": [["c252ccda7", "c4c2885cb"]], "identity_text": "Fix UNION/INTERSECT/EXCEPT over zero columns (Tom Lane)", "commit_aliases": ["c252ccda7", "c4c2885cb"], "source_commits": ["c252ccda7"], "source_entry_id": "10.2/changes/012", "db_id": "08585392c5190514ebececefbe983950", "patch_ids": ["576bf68c8eeb7bec2dbca9259b023703"], "statement_hash": "7aeb91f3c619bbf7d501db8a130fa7600630b2a614271dcebbe7790b6f62d8b5", "relations": [], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-6e373325b97d0785", "cves": [], "html": "<p>禁止在类型化表和分区上使用标识列（Michael Paquier）</p>\n<p>这些情况目前将视为不支持的功能。</p>", "text": "禁止在类型化表和分区上使用标识列（Michael Paquier） 这些情况目前将视为不支持的功能。", "title": "禁止在类型化表和分区上使用标识列", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "d9644270a8cb40f5e268d7f3c845b26ea50971c5d6dca9bde8e5514c96ee20ee", "section_path": ["变更"], "commit_groups": [["005ac298b", "a2c6cf366"]], "identity_text": "Disallow identity columns on typed tables and partitions (Michael Paquier) These cases will be treated as unsupported features for now.", "commit_aliases": ["005ac298b", "a2c6cf366"], "source_commits": ["a2c6cf366"], "source_entry_id": "10.2/changes/013", "db_id": "94108005d9ed10d49124b8e97489037c", "patch_ids": ["0f4133604053d01470055dc048119f4f"], "statement_hash": "1b65518115bd0be9726e8d3fef89408938265bcf6891013b2983a4f869bc160e", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-e436c3f8dcea37dd", "cves": [], "html": "<p>修复向标识列插入数据时未应用正确默认值的多种问题（Michael Paquier，Peter Eisentraut）</p>\n<p>在若干场景中，尤其是 <code>COPY</code> 和 <code>ALTER TABLE ADD COLUMN</code>，未应用预期的默认值，而是插入了空值。</p>", "text": "修复向标识列插入数据时未应用正确默认值的多种问题（Michael Paquier，Peter Eisentraut） 在若干场景中，尤其是 COPY 和 ALTER TABLE ADD COLUMN，未应用预期的默认值，而是插入了空值。", "title": "修复向标识列插入数据时未应用正确默认值的多种问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "3bb23f70773f67eb3ee4b6832952d69c7024e6f90dc68804c1f9ca1c13835ca6", "section_path": ["变更"], "commit_groups": [["1597948c9", "533c5d8bd"], ["2d2d06b7e", "ee5b59549"]], "identity_text": "Fix assorted failures to apply the correct default value when inserting into an identity column (Michael Paquier, Peter Eisentraut) In several contexts, notably COPY and ALTER TABLE ADD COLUMN, the expected default value was not applied and instead a null value was inserted.", "commit_aliases": ["1597948c9", "2d2d06b7e", "533c5d8bd", "ee5b59549"], "source_commits": ["1597948c9", "ee5b59549"], "source_entry_id": "10.2/changes/014", "db_id": "46c7902e0d8951ff490013e21addd1bf", "patch_ids": ["21f6c522c9760030af40c2f678815815", "266c453b9ac3850808d8056cf51cb50a"], "statement_hash": "e12eb58a01926077c90b1de5cb562afb447c39306f981769cb4102ebdf0c413b", "relations": [], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-8f5d875f16bfb472", "cves": [], "html": "<p>修复继承树包含外部子表时的失败（Etsuro Fujita）</p>\n<p>继承树中混有普通表和外部表时，会为 <code>UPDATE</code> 和 <code>DELETE</code> 查询创建不正确的计划。这会在某些情况下导致可见的失败，尤其是外部子表上存在行级触发器时。</p>", "text": "修复继承树包含外部子表时的失败（Etsuro Fujita） 继承树中混有普通表和外部表时，会为 UPDATE 和 DELETE 查询创建不正确的计划。这会在某些情况下导致可见的失败，尤其是外部子表上存在行级触发器时。", "title": "修复继承树包含外部子表时的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "631fd955f9a902d1fef9ab0855f967be5bd2ebfa9e679ddda578294753f7a41d", "section_path": ["变更"], "commit_groups": [["06ba53096", "39f180fdd", "9a785ad57", "a57aa430b"]], "identity_text": "Fix failures when an inheritance tree contains foreign child tables (Etsuro Fujita) A mix of regular and foreign tables in an inheritance tree resulted in creation of incorrect plans for UPDATE and DELETE queries. This led to visible failures in some cases, notably when there are row-level triggers on a foreign child table.", "commit_aliases": ["06ba53096", "39f180fdd", "9a785ad57", "a57aa430b"], "source_commits": ["a57aa430b"], "source_entry_id": "10.2/changes/015", "db_id": "9d3ee6e07bdd121f21a643cf4929c09b", "patch_ids": ["8eba803b36d3ff7c3a31a0c356196e3d"], "statement_hash": "7a12ea3210f4b16f86cc574f39f934f265e36c24ac1419c03685b50bc4e74f39", "relations": [{"rule": 2, "type": "equivalent", "target": "0daca53b9d435a9015e518004011a4fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a12ea3210f4b16f86cc574f39f934f265e36c24ac1419c03685b50bc4e74f39"}}, {"rule": 2, "type": "equivalent", "target": "3e219e430a3ac60fe3c0ae8b96261e5e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a12ea3210f4b16f86cc574f39f934f265e36c24ac1419c03685b50bc4e74f39"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3e219e430a3ac60fe3c0ae8b96261e5e", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复继承树包含外部子表时的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a12ea3210f4b16f86cc574f39f934f265e36c24ac1419c03685b50bc4e74f39"}, "url": "/docs/compare/?release=9.6.7#9.6.7-8f5d875f16bfb472", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "0daca53b9d435a9015e518004011a4fe", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复继承树包含外部子表时的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a12ea3210f4b16f86cc574f39f934f265e36c24ac1419c03685b50bc4e74f39"}, "url": "/docs/compare/?release=9.5.11#9.5.11-8f5d875f16bfb472", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}]}, {"id": "10.2-24d5a5b6f05ef5ed", "cves": [], "html": "<p>修复 <code>LATERAL</code> 子查询中 <code>VALUES</code> 内的相关子 <code>SELECT</code> 导致的失败（Tom Lane）</p>", "text": "修复 LATERAL 子查询中 VALUES 内的相关子 SELECT 导致的失败（Tom Lane）", "title": "修复 LATERAL 子查询中 VALUES 内的相关子 SELECT 导致的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "bf665d72fdfbe3d2f8d4f04601a382e4d37fcfd6d6644b429d2fe8439516a229", "section_path": ["变更"], "commit_groups": [["2e105cf6d", "497e79b96", "5dc7faa91", "9b63c13f0", "ae6ed0784", "d538f6568"]], "identity_text": "Repair failure with correlated sub-SELECT inside VALUES inside a LATERAL subquery (Tom Lane)", "commit_aliases": ["2e105cf6d", "497e79b96", "5dc7faa91", "9b63c13f0", "ae6ed0784", "d538f6568"], "source_commits": ["5dc7faa91"], "source_entry_id": "10.2/changes/016", "db_id": "65fc85b0b47fabd240409d5f2054d96d", "patch_ids": ["666494d64cd4e234d915e7f965e8eb4a"], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c", "relations": [{"rule": 2, "type": "equivalent", "target": "08317401be83c287ffb1e92b829f98c8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}}, {"rule": 2, "type": "equivalent", "target": "24e4a244bb80527b6b2f75d88c341130", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}}, {"rule": 2, "type": "equivalent", "target": "3cdb2c132ad40c77431e35911ee4b48b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}}, {"rule": 2, "type": "equivalent", "target": "8c72ac6b2fba11c344919a4d10bf6d22", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "8c72ac6b2fba11c344919a4d10bf6d22", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}, "url": "/docs/compare/?release=9.6.7#9.6.7-346c838211b82c44", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "3cdb2c132ad40c77431e35911ee4b48b", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}, "url": "/docs/compare/?release=9.5.11#9.5.11-346c838211b82c44", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "08317401be83c287ffb1e92b829f98c8", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}, "url": "/docs/compare/?release=9.4.16#9.4.16-346c838211b82c44", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "24e4a244bb80527b6b2f75d88c341130", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 LATERAL 子查询内 VALUES 内相关子 SELECT 的失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7e2bf5803eece4b3b275459218bd07eda11a84298021b5808f5fec7c2c6a7d9c"}, "url": "/docs/compare/?release=9.3.21#9.3.21-346c838211b82c44", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-b14470686a94e455", "cves": [], "html": "<p>修复横向子查询内部存在嵌套 <code>UNION ALL</code> 的某些情况下，规划器报告 <span>“<span>could not devise a query plan for the given query</span>”</span> 的失败（Tom Lane）</p>", "text": "修复横向子查询内部存在嵌套 UNION ALL 的某些情况下，规划器报告 “could not devise a query plan for the given query” 的失败（Tom Lane）", "title": "修复横向子查询内部存在嵌套 UNION ALL 的某些情况下，规划器报告 “could not devise a query plan for the given query” 的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "60ad71d42164b027f4909c8e3f4142293e786289029af34de6e6933c0a9e63e3", "section_path": ["变更"], "commit_groups": [["54e1599c7", "8a2228b2f", "ae3699a6a", "b100a5274", "bb94ce4d2", "c5e59bb60"]], "identity_text": "Fix could not devise a query plan for the given query planner failure for some cases involving nested UNION ALL inside a lateral subquery (Tom Lane)", "commit_aliases": ["54e1599c7", "8a2228b2f", "ae3699a6a", "b100a5274", "bb94ce4d2", "c5e59bb60"], "source_commits": ["c5e59bb60"], "source_entry_id": "10.2/changes/017", "db_id": "f942ad4f0a998777c3ce08593d956283", "patch_ids": ["31f5193c036a194df55bc24c7b669114"], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c", "relations": [{"rule": 2, "type": "equivalent", "target": "11be3b46e5562e568dcf3eb498fbd102", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}}, {"rule": 2, "type": "equivalent", "target": "67468e944bb781e37724ba62e3ac6fd3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}}, {"rule": 2, "type": "equivalent", "target": "9f7497c7d9ffed7fc37192d093b636fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}}, {"rule": 2, "type": "equivalent", "target": "dbfdbb67dd1039ecbc3a40ba6a034d26", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "67468e944bb781e37724ba62e3ac6fd3", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}, "url": "/docs/compare/?release=9.6.7#9.6.7-a8a70f044e1c683a", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "dbfdbb67dd1039ecbc3a40ba6a034d26", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}, "url": "/docs/compare/?release=9.5.11#9.5.11-a8a70f044e1c683a", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "11be3b46e5562e568dcf3eb498fbd102", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}, "url": "/docs/compare/?release=9.4.16#9.4.16-a8a70f044e1c683a", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "9f7497c7d9ffed7fc37192d093b636fe", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复横向子查询内嵌套 UNION ALL 的某些情况下 “could not devise a query plan for the given query” 规划器失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2aa1c52310e2be0f968414a985940c6922ea17ebbcd5d5d0d2dcc1c8836c237c"}, "url": "/docs/compare/?release=9.3.21#9.3.21-a8a70f044e1c683a", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-bf34eb1bd56fd435", "cves": [], "html": "<p>允许将函数依赖统计用于布尔列（Tom Lane）</p>\n<p>以前，虽然可以为布尔列声明并收集扩展统计信息，但规划器未能使用它们。</p>", "text": "允许将函数依赖统计用于布尔列（Tom Lane） 以前，虽然可以为布尔列声明并收集扩展统计信息，但规划器未能使用它们。", "title": "允许将函数依赖统计用于布尔列", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "9a31c6a863138e9462f5008e65ebf583d4dc42b39f939fba27c77af7aacc067f", "section_path": ["变更"], "commit_groups": [["bf2b317f1", "ecc27d55f"]], "identity_text": "Allow functional dependency statistics to be used for boolean columns (Tom Lane) Previously, although extended statistics could be declared and collected on boolean columns, the planner failed to apply them.", "commit_aliases": ["bf2b317f1", "ecc27d55f"], "source_commits": ["bf2b317f1"], "source_entry_id": "10.2/changes/018", "db_id": "8211c7e1c91a111331552ee9eb8547e1", "patch_ids": ["3bfda67aa38ca64ecc32ec7a47cdd9e4"], "statement_hash": "b90ed1d9bffe20be9cfc79c4ee6ab3a5943d54ed30676bafd4bc7d3f3f5671b3", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-7e4006f966535647", "cves": [], "html": "<p>避免低估分组列中包含集合返回函数的子查询所输出的分组数（Tom Lane）</p>\n<p>对于类似 <code>SELECT DISTINCT unnest(foo)</code> 的情况，10.0 的输出行数估计比更早版本低，可能导致选择不理想的计划。现在恢复了以前的估算行为。</p>", "text": "避免低估分组列中包含集合返回函数的子查询所输出的分组数（Tom Lane） 对于类似 SELECT DISTINCT unnest(foo) 的情况，10.0 的输出行数估计比更早版本低，可能导致选择不理想的计划。现在恢复了以前的估算行为。", "title": "避免低估分组列中包含集合返回函数的子查询所输出的分组数", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "f8e82cc204ae85f7ff691734e962f442814491c52c3c3b5273729d16eada23ab", "section_path": ["变更"], "commit_groups": [["b9fc2d0b9", "df3a66e28"]], "identity_text": "Avoid underestimating the number of groups emitted by subqueries containing set-returning functions in their grouping columns (Tom Lane) Cases similar to SELECT DISTINCT unnest(foo) got a lower output rowcount estimate in 10.0 than they did in earlier releases, possibly resulting in unfavorable plan choices. Restore the prior estimation behavior.", "commit_aliases": ["b9fc2d0b9", "df3a66e28"], "source_commits": ["b9fc2d0b9"], "source_entry_id": "10.2/changes/019", "db_id": "99c0253ee823a49bce78e307bc6472e4", "patch_ids": ["95fc00316d3b96f51116bbbcc31295d5"], "statement_hash": "14ca6520e62a8c224eef01de8468b12869f5bccf41ccd4598bd493b48066a16e", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-1c3a466226e84ece", "cves": [], "html": "<p>修复逻辑复制工作进程中触发器的使用（Petr Jelinek）</p>", "text": "修复逻辑复制工作进程中触发器的使用（Petr Jelinek）", "title": "修复逻辑复制工作进程中触发器的使用", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "1abdfe63e26438e4bdc0ffd22d868e6330c487b5d0ab3172912a8f88ed9da08e", "section_path": ["变更"], "commit_groups": [["7015bb389", "7e17a6889"]], "identity_text": "Fix use of triggers in logical replication workers (Petr Jelinek)", "commit_aliases": ["7015bb389", "7e17a6889"], "source_commits": ["7015bb389"], "source_entry_id": "10.2/changes/020", "db_id": "5701acd2f6d4ae63e4baad94c5911952", "patch_ids": ["26ecacfa9d2fca8f33e8a52422a940ed"], "statement_hash": "37ed7367d7cc80cf20afb48e2276c9048e2d9bce6578e7f479a78f3ba473f2b8", "relations": [], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-75e030256afcfdc8", "cves": [], "html": "<p>修复逻辑解码，使其正确清理已崩溃事务的磁盘文件（Atsushi Torikoshi）</p>\n<p>对于产生大量 WAL 记录的事务，逻辑解码可能将 WAL 记录溢写到磁盘。通常，在收到事务的提交或中止记录后，会清理这些文件；但如果始终未看到此类记录，删除代码就会行为异常。</p>", "text": "修复逻辑解码，使其正确清理已崩溃事务的磁盘文件（Atsushi Torikoshi） 对于产生大量 WAL 记录的事务，逻辑解码可能将 WAL 记录溢写到磁盘。通常，在收到事务的提交或中止记录后，会清理这些文件；但如果始终未看到此类记录，删除代码就会行为异常。", "title": "修复逻辑解码，使其正确清理已崩溃事务的磁盘文件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "fa01dea644290d3b88042d7c63304824b042927a1bc63474568756266c5b9f6d", "section_path": ["变更"], "commit_groups": [["132cd58d6", "9a5e4a6e0", "a19c262f3", "df9f682c7", "f68c49f86"]], "identity_text": "Fix logical decoding to correctly clean up disk files for crashed transactions (Atsushi Torikoshi) Logical decoding may spill WAL records to disk for transactions generating many WAL records. Normally these files are cleaned up after the transaction's commit or abort record arrives; but if no such record is ever seen, the removal code misbehaved.", "commit_aliases": ["132cd58d6", "9a5e4a6e0", "a19c262f3", "df9f682c7", "f68c49f86"], "source_commits": ["a19c262f3"], "source_entry_id": "10.2/changes/021", "db_id": "9497dcb4664035e25dea5719273f7775", "patch_ids": ["63740847f641cb3d636bd3501ec66df6"], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58", "relations": [{"rule": 2, "type": "equivalent", "target": "83dd6050e0a3001070dd3a37e3608644", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58"}}, {"rule": 2, "type": "equivalent", "target": "c1380b5003065cde8718f6de81c5e697", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58"}}, {"rule": 2, "type": "equivalent", "target": "fa34b7fe4ae72800b6f3457f5a514f70", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "83dd6050e0a3001070dd3a37e3608644", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复逻辑解码正确清理崩溃事务的磁盘文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58"}, "url": "/docs/compare/?release=9.6.7#9.6.7-d72b0494874321e1", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "fa34b7fe4ae72800b6f3457f5a514f70", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复逻辑解码正确清理崩溃事务的磁盘文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58"}, "url": "/docs/compare/?release=9.5.11#9.5.11-d72b0494874321e1", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "c1380b5003065cde8718f6de81c5e697", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复逻辑解码正确清理崩溃事务的磁盘文件", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "22ecb423ef2550addbdb9b0640c074d3b7932d794dd1520927386a27c8c41f58"}, "url": "/docs/compare/?release=9.4.16#9.4.16-d72b0494874321e1", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "10.2-93bdf69bb80a3775", "cves": [], "html": "<p>修复 WAL 发送进程在处理大型事务时超时失败及不响应中断的问题（Petr Jelinek）</p>", "text": "修复 WAL 发送进程在处理大型事务时超时失败及不响应中断的问题（Petr Jelinek）", "title": "修复 WAL 发送进程在处理大型事务时超时失败及不响应中断的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "4012eee6104e7045ad8e5177378e7628160bb67aa666a89682fc80111f225ece", "section_path": ["变更"], "commit_groups": [["0fedb4ea6", "14c15b1f4", "87056267e", "c28e0b1e0", "f5c7e0cdd"]], "identity_text": "Fix walsender timeout failure and failure to respond to interrupts when processing a large transaction (Petr Jelinek)", "commit_aliases": ["0fedb4ea6", "14c15b1f4", "87056267e", "c28e0b1e0", "f5c7e0cdd"], "source_commits": ["14c15b1f4"], "source_entry_id": "10.2/changes/022", "db_id": "49d5a018edca09aa50a64ee6c2dcb3cf", "patch_ids": ["11a125a3898a1e7f2ff218373832fbad"], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2", "relations": [{"rule": 2, "type": "equivalent", "target": "04df9533a2e0c239993c4f25740c3f2c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2"}}, {"rule": 2, "type": "equivalent", "target": "0641ecfcd209be620a7f15faf0c8b1d3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2"}}, {"rule": 2, "type": "equivalent", "target": "8c59f13b8514866cfb7e0fec2a8151dc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "04df9533a2e0c239993c4f25740c3f2c", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复处理大事务时的 walsender 超时失败和中断响应失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2"}, "url": "/docs/compare/?release=9.6.7#9.6.7-6ae35003430a8b72", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "0641ecfcd209be620a7f15faf0c8b1d3", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复处理大事务时的 walsender 超时失败和中断响应失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2"}, "url": "/docs/compare/?release=9.5.11#9.5.11-6ae35003430a8b72", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "8c59f13b8514866cfb7e0fec2a8151dc", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复处理大事务时的 walsender 超时失败和中断响应失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "3688b7e06c4f12e21fd0acc9101d472bcb1ebb84425dc9932b6b565cc9913df2"}, "url": "/docs/compare/?release=9.4.16#9.4.16-6ae35003430a8b72", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "10.2-d288de0d249347a9", "cves": [], "html": "<p>修复删除复制源期间的竞态条件，该问题可能导致删除进程无限等待（Tom Lane）</p>", "text": "修复删除复制源期间的竞态条件，该问题可能导致删除进程无限等待（Tom Lane）", "title": "修复删除复制源期间的竞态条件，该问题可能导致删除进程无限等待", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "62f15b74ccdcd4364f22d395631c6038e339ab70c2cc78a4b38b7c27c974f933", "section_path": ["变更"], "commit_groups": [["1f5adbd79", "8a906204a"]], "identity_text": "Fix race condition during replication origin drop that could allow the dropping process to wait indefinitely (Tom Lane)", "commit_aliases": ["1f5adbd79", "8a906204a"], "source_commits": ["1f5adbd79"], "source_entry_id": "10.2/changes/023", "db_id": "cdafb00bd9dad626e98c759dd59f8105", "patch_ids": ["8657ed3f5cf6102c6908d42c70891def"], "statement_hash": "1dfeb8749ca032208c343f097bf375779eeb51eefffc03b500fc133dc3e4b1ae", "relations": [], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-2a4b610221235801", "cves": [], "html": "<p>允许 <code>pg_read_all_stats</code> 角色的成员查看 <code>pg_stat_replication</code> 视图中的 WAL 发送进程统计信息（Feike Steenbergen）</p>", "text": "允许 pg_read_all_stats 角色的成员查看 pg_stat_replication 视图中的 WAL 发送进程统计信息（Feike Steenbergen）", "title": "允许 pg_read_all_stats 角色的成员查看 pg_stat_replication 视图中的 WAL 发送进程统计信息", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "0dbbf7c154cf44b9512e82d6afe8b417c129a6580a78c07d884c47ca3d6c52a3", "section_path": ["变更"], "commit_groups": [["6668a54eb", "76e117dbe"]], "identity_text": "Allow members of the pg_read_all_stats role to see walsender statistics in the pg_stat_replication view (Feike Steenbergen)", "commit_aliases": ["6668a54eb", "76e117dbe"], "source_commits": ["76e117dbe"], "source_entry_id": "10.2/changes/024", "db_id": "8265bf72b8316a12039af6b316f4867d", "patch_ids": ["34b98104a97890fcf56416c8cec463c9"], "statement_hash": "25ab120cf506531ec3833116f7a3f7bec82167e0f225cbe934baaa95456b6449", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-04669805ad577d74", "cves": [], "html": "<p>在 <code>pg_stat_activity</code> 视图中，将正在发送基础备份的 WAL 发送进程显示为活动状态（Magnus Hagander）</p>", "text": "在 pg_stat_activity 视图中，将正在发送基础备份的 WAL 发送进程显示为活动状态（Magnus Hagander）", "title": "在 pg_stat_activity 视图中，将正在发送基础备份的 WAL 发送进程显示为活动状态", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "b568323466203c96eac328750fb01ed48365dfe1066f71ae31c6f93c8dc20199", "section_path": ["变更"], "commit_groups": [["b38c3d58e", "d02974e32"]], "identity_text": "Show walsenders that are sending base backups as active in the pg_stat_activity view (Magnus Hagander)", "commit_aliases": ["b38c3d58e", "d02974e32"], "source_commits": ["b38c3d58e"], "source_entry_id": "10.2/changes/025", "db_id": "f4d1ba9d8067c2aa92c55b14c45e01f9", "patch_ids": ["37da0ff7aa96eedbb29ab0e25b2460e8"], "statement_hash": "792dada6c61e2021e82635234000b6018eebdfe2161cf47d6ad8f6fd55a6e430", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-8afefdf4ca7b8991", "cves": [], "html": "<p>修复 <code>pg_hba_file_rules</code> 视图对 <code>scram-sha-256</code> 认证方法的报告（Michael Paquier）</p>\n<p>以前，这里打印为 <code>scram-sha256</code>，可能使用户误解其正确拼写。</p>", "text": "修复 pg_hba_file_rules 视图对 scram-sha-256 认证方法的报告（Michael Paquier） 以前，这里打印为 scram-sha256，可能使用户误解其正确拼写。", "title": "修复 pg_hba_file_rules 视图对 scram-sha-256 认证方法的报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "1922a7b9992d11843b75853a8d8311f5d5c1533071fb33c8ac90addf8c52d29e", "section_path": ["变更"], "commit_groups": [["167a22b2a", "38d485fda"]], "identity_text": "Fix reporting of scram-sha-256 authentication method in the pg_hba_file_rules view (Michael Paquier) Previously this was printed as scram-sha256, possibly confusing users as to the correct spelling.", "commit_aliases": ["167a22b2a", "38d485fda"], "source_commits": ["167a22b2a"], "source_entry_id": "10.2/changes/026", "db_id": "14a03791946b46a437302703adfd4a13", "patch_ids": ["5467894def572df3a4eb9f5f2585ecaa"], "statement_hash": "a94ba52cacb873c649020da3aafb85a1f024bf17a09706e3286af74e21e0a5e8", "relations": [], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-212465228d89f18d", "cves": [], "html": "<p>修复 <code>has_sequence_privilege()</code>，使其与其他权限测试函数一样支持 <code>WITH GRANT OPTION</code> 测试（Joe Conway）</p>", "text": "修复 has_sequence_privilege()，使其与其他权限测试函数一样支持 WITH GRANT OPTION 测试（Joe Conway）", "title": "修复 has_sequence_privilege()，使其与其他权限测试函数一样支持 WITH GRANT OPTION 测试", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "09d99be1a2906ae9253edc0db12b26f8340e2fb51c262a6114e22a4713057332", "section_path": ["变更"], "commit_groups": [["69e5b1e9c", "752714dd9", "997015ef2", "9e051b674", "d8d9c97cd", "db714c62b"]], "identity_text": "Fix has_sequence_privilege() to support WITH GRANT OPTION tests, as other privilege-testing functions do (Joe Conway)", "commit_aliases": ["69e5b1e9c", "752714dd9", "997015ef2", "9e051b674", "d8d9c97cd", "db714c62b"], "source_commits": ["9e051b674"], "source_entry_id": "10.2/changes/027", "db_id": "e3220e245c3534dd19fe43e00fa92707", "patch_ids": ["8933f5f04cc811b120d45a417bb46239"], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e", "relations": [{"rule": 2, "type": "equivalent", "target": "619783ed3e2208495d597662446253c1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}}, {"rule": 2, "type": "equivalent", "target": "76649b2fb466f9acb38720b8976c353c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}}, {"rule": 2, "type": "equivalent", "target": "a1d669f5e670a3c8cead313057939aed", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}}, {"rule": 2, "type": "equivalent", "target": "a8aabc64f8411c7c77b294c05f462251", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a8aabc64f8411c7c77b294c05f462251", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}, "url": "/docs/compare/?release=9.6.7#9.6.7-c564b31f07d13743", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "a1d669f5e670a3c8cead313057939aed", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}, "url": "/docs/compare/?release=9.5.11#9.5.11-c564b31f07d13743", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "619783ed3e2208495d597662446253c1", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}, "url": "/docs/compare/?release=9.4.16#9.4.16-c564b31f07d13743", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "76649b2fb466f9acb38720b8976c353c", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 has_sequence_privilege() 像其他权限测试函数一样支持 WITH GRANT OPTION 测试", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e6672d1a2b9d70a56e2d8c49b5acab5d3704e50288d8fe01fd77755af7704d6e"}, "url": "/docs/compare/?release=9.3.21#9.3.21-c564b31f07d13743", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-016c58f600bdd511", "cves": [], "html": "<p>在使用 UTF8 编码的数据库中，忽略任何声称使用其他编码的 XML 声明（Pavel Stehule，Noah Misch）</p>\n<p>我们始终以数据库编码存储 XML 字符串，因此允许 libxml 根据其他编码的声明进行处理会产生错误结果。对于 UTF8 之外的编码，我们本来就不保证支持非 ASCII 的 XML 数据，因此为保持缺陷兼容而保留以前的行为。此项修改只影响 <code>xpath()</code> 及相关函数；其他 XML 代码路径早已如此处理。</p>", "text": "在使用 UTF8 编码的数据库中，忽略任何声称使用其他编码的 XML 声明（Pavel Stehule，Noah Misch） 我们始终以数据库编码存储 XML 字符串，因此允许 libxml 根据其他编码的声明进行处理会产生错误结果。对于 UTF8 之外的编码，我们本来就不保证支持非 ASCII 的 XML 数据，因此为保持缺陷兼容而保留以前的行为。此项修改只影响 xpath() 及相关函数；其他 XML 代码路径早已如此处理。", "title": "在使用 UTF8 编码的数据库中，忽略任何声称使用其他编码的 XML 声明", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "162890d3e32546490b1b411a60cfddbbf2c775a1cf4d796e966647c3d93e7c24", "section_path": ["变更"], "commit_groups": [["075ced2a4", "4b865aee2", "739f1f6ac", "742471ef9", "e48fb50d8", "f5260d5ad"], ["2918fcedb", "2f4061aff", "30a5e940a", "46fb15f48", "d8406b9de", "e7083dfce"]], "identity_text": "In databases using UTF8 encoding, ignore any XML declaration that asserts a different encoding (Pavel Stehule, Noah Misch) We always store XML strings in the database encoding, so allowing libxml to act on a declaration of another encoding gave wrong results. In encodings other than UTF8, we don't promise to support non-ASCII XML data anyway, so retain the previous behavior for bug compatibility. This change affects only xpath() and related functions; other XML code paths already acted this way.", "commit_aliases": ["075ced2a4", "2918fcedb", "2f4061aff", "30a5e940a", "46fb15f48", "4b865aee2", "739f1f6ac", "742471ef9", "d8406b9de", "e48fb50d8", "e7083dfce", "f5260d5ad"], "source_commits": ["075ced2a4", "30a5e940a"], "source_entry_id": "10.2/changes/028", "db_id": "64a65085d2bcc64e247b1378e263a15f", "patch_ids": ["6d583608a70fc1b0e6ae46ce7e33b7e5", "e7bab3a41a4d3374650a8de2a2c2beeb"], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580", "relations": [{"rule": 2, "type": "equivalent", "target": "51c16b63b73e8952455ef010fdb6bc34", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}}, {"rule": 2, "type": "equivalent", "target": "540a56e4e2cbaf9eb6bc42d44f971b7c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}}, {"rule": 2, "type": "equivalent", "target": "703b556bb53b3308f4833abf091add00", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}}, {"rule": 2, "type": "equivalent", "target": "9f5978e04390021201aa8d533376bcb3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "540a56e4e2cbaf9eb6bc42d44f971b7c", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}, "url": "/docs/compare/?release=9.6.7#9.6.7-2038697ff3166b24", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "703b556bb53b3308f4833abf091add00", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}, "url": "/docs/compare/?release=9.5.11#9.5.11-2038697ff3166b24", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "51c16b63b73e8952455ef010fdb6bc34", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}, "url": "/docs/compare/?release=9.4.16#9.4.16-2038697ff3166b24", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "9f5978e04390021201aa8d533376bcb3", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "在使用 UTF8 编码的数据库中，忽略断言不同编码的 XML 声明", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ff931297cec129457b4653d64184dafec23d198c4e021cd1f4d32369c6477580"}, "url": "/docs/compare/?release=9.3.21#9.3.21-2038697ff3166b24", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-9f3306712ba2b392", "cves": [], "html": "<p>提供对未来小版本协议的向前兼容能力（Robert Haas，Badrul Chowdhury）</p>\n<p>到目前为止，<span>PostgreSQL</span> 服务器会直接拒绝使用高于 3.0 的协议版本的请求，因此协议版本号的大版本和小版本部分在功能上没有区别。现在允许客户端请求 3.x 版本而不导致失败，同时返回一条消息，表明服务器只理解 3.0。目前这不会带来任何差异，但将此项修改反向移植到旧版本后，应能更快地引入未来的协议小版本升级。</p>", "text": "提供对未来小版本协议的向前兼容能力（Robert Haas，Badrul Chowdhury） 到目前为止，PostgreSQL 服务器会直接拒绝使用高于 3.0 的协议版本的请求，因此协议版本号的大版本和小版本部分在功能上没有区别。现在允许客户端请求 3.x 版本而不导致失败，同时返回一条消息，表明服务器只理解 3.0。目前这不会带来任何差异，但将此项修改反向移植到旧版本后，应能更快地引入未来的协议小版本升级。", "title": "提供对未来小版本协议的向前兼容能力", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "377e535b0d2196659f00fbd3a6ae6fe953dcbaa28c8c8c098d70355a9ea0733f", "section_path": ["变更"], "commit_groups": [["294136d42", "5b2a87707", "7c84bc0b3", "aa3a78c3d", "ae65f6066", "c703aa625"]], "identity_text": "Provide for forward compatibility with future minor protocol versions (Robert Haas, Badrul Chowdhury) Up to now, PostgreSQL servers simply rejected requests to use protocol versions newer than 3.0, so that there was no functional difference between the major and minor parts of the protocol version number. Allow clients to request versions 3.x without failing, sending back a message showing that the server only understands 3.0. This makes no difference at the moment, but back-patching this change should allow speedier introduction of future minor protocol upgrades.", "commit_aliases": ["294136d42", "5b2a87707", "7c84bc0b3", "aa3a78c3d", "ae65f6066", "c703aa625"], "source_commits": ["5b2a87707"], "source_entry_id": "10.2/changes/029", "db_id": "3bca875f15d6646be2ba689accfac0d0", "patch_ids": ["cc37bd9aa5294ba4023ccfacc843bc63"], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f", "relations": [{"rule": 2, "type": "equivalent", "target": "4b25bdea5725fec36e838fba1cc4807f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}}, {"rule": 2, "type": "equivalent", "target": "5808ced71469317610618ca1565949c6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}}, {"rule": 2, "type": "equivalent", "target": "922f5e76b2fc8a6ef5a033bb14730ec4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}}, {"rule": 2, "type": "equivalent", "target": "fc71934fa6f0e20f15e2a3d74cf2224c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "922f5e76b2fc8a6ef5a033bb14730ec4", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "为与未来次版本协议的前向兼容做准备", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}, "url": "/docs/compare/?release=9.6.7#9.6.7-fd3e0daf12568c15", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "5808ced71469317610618ca1565949c6", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "为与未来次版本协议的前向兼容做准备", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}, "url": "/docs/compare/?release=9.5.11#9.5.11-fd3e0daf12568c15", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "4b25bdea5725fec36e838fba1cc4807f", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "为与未来次版本协议的前向兼容做准备", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}, "url": "/docs/compare/?release=9.4.16#9.4.16-fd3e0daf12568c15", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "fc71934fa6f0e20f15e2a3d74cf2224c", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "为与未来次版本协议的前向兼容做准备", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "081ebb6ea2f10d0f8e9f995ca705489cb715775481b5634ab2e759b1fc27937f"}, "url": "/docs/compare/?release=9.3.21#9.3.21-fd3e0daf12568c15", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-b90b97e0df8b1edc", "cves": [], "html": "<p>允许支持 SCRAM 通道绑定的客户端（例如 v11 或更高版本的 <span>libpq</span>）连接到 v10 服务器（Michael Paquier）</p>\n<p>v10 没有此功能，且在连接时就是否使用该功能进行的协商不正确。</p>", "text": "允许支持 SCRAM 通道绑定的客户端（例如 v11 或更高版本的 libpq）连接到 v10 服务器（Michael Paquier） v10 没有此功能，且在连接时就是否使用该功能进行的协商不正确。", "title": "允许支持 SCRAM 通道绑定的客户端（例如 v11 或更高版本的 libpq）连接到 v10 服务器", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "b8b663726371e8dcc7b3086fbc5f08fee5937406e224d67e0ff27e2f5a4648c7", "section_path": ["变更"], "commit_groups": [["218b024a7"]], "identity_text": "Allow a client that supports SCRAM channel binding (such as v11 or later libpq) to connect to a v10 server (Michael Paquier) v10 does not have this feature, and the connection-time negotiation about whether to use it was done incorrectly.", "commit_aliases": ["218b024a7"], "source_commits": ["218b024a7"], "source_entry_id": "10.2/changes/030", "db_id": "efd93f119ed850e0e2a00450abf5a370", "patch_ids": ["a96a372ec01cd72d09c9d7325358326b"], "statement_hash": "3bf43c19f251762323cd12c021adc99a474787a300e153628b0091b20de586fa", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-a449d3f0b3d71500", "cves": [], "html": "<p>避免 <code>ConditionVariableBroadcast()</code> 中的活锁（Tom Lane，Thomas Munro）</p>\n<p>如果反复遇到不利的时序，尝试唤醒某个条件变量的所有等待者的进程可能无限循环。由于 v10 中条件变量的使用范围有限，这只影响并行索引扫描和复制槽上的某些操作。</p>", "text": "避免 ConditionVariableBroadcast() 中的活锁（Tom Lane，Thomas Munro） 如果反复遇到不利的时序，尝试唤醒某个条件变量的所有等待者的进程可能无限循环。由于 v10 中条件变量的使用范围有限，这只影响并行索引扫描和复制槽上的某些操作。", "title": "避免 ConditionVariableBroadcast() 中的活锁", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "c85216fa12a16201afba82dca2f62defee116f775d8106d31ba30b289838283f", "section_path": ["变更"], "commit_groups": [["1c77e9908", "aced5a92b"]], "identity_text": "Avoid live-lock in ConditionVariableBroadcast() (Tom Lane, Thomas Munro) Given repeatedly-unlucky timing, a process attempting to awaken all waiters for a condition variable could loop indefinitely. Due to the limited usage of condition variables in v10, this affects only parallel index scans and some operations on replication slots.", "commit_aliases": ["1c77e9908", "aced5a92b"], "source_commits": ["1c77e9908"], "source_entry_id": "10.2/changes/031", "db_id": "f3f4c7cbe9b97e2f42c1cbe064fe9a85", "patch_ids": ["10006ded89ff3ba1b764dc9cf28b6ad9"], "statement_hash": "88a55bbd11077a63bbcfcd8b12aa320dbcc2d6b0d4b692531a253347613eb5d1", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-c22b8f02db12cedc", "cves": [], "html": "<p>在子事务中止期间正确清理对条件变量的等待（Robert Haas）</p>", "text": "在子事务中止期间正确清理对条件变量的等待（Robert Haas）", "title": "在子事务中止期间正确清理对条件变量的等待", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "0ded63b78a36361e5d75f91a17e358e841deeb7239c62e994f4dc18b592673ac", "section_path": ["变更"], "commit_groups": [["59d1e2b95", "f3decdc94"]], "identity_text": "Clean up waits for condition variables correctly during subtransaction abort (Robert Haas)", "commit_aliases": ["59d1e2b95", "f3decdc94"], "source_commits": ["f3decdc94"], "source_entry_id": "10.2/changes/032", "db_id": "54bd6f3cf2901fa1891f50e0974e5b0c", "patch_ids": ["920db40c04ac2493ff4c4a8d96a7bcd7"], "statement_hash": "4558e2d30e0549c377ab97a936c31fa682b43f1be3df6d40acdcee1b1076e532", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-1b8f04d22b4aa2cd", "cves": [], "html": "<p>确保等待条件变量的子进程在 postmaster 进程死亡后及时退出（Tom Lane）</p>", "text": "确保等待条件变量的子进程在 postmaster 进程死亡后及时退出（Tom Lane）", "title": "确保等待条件变量的子进程在 postmaster 进程死亡后及时退出", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "062c9360c73f82d21fb114e0e894f750a892a26443256dcc765cacffe437440c", "section_path": ["变更"], "commit_groups": [["80259d4db", "d56a5f994"]], "identity_text": "Ensure that child processes that are waiting for a condition variable will exit promptly if the postmaster process dies (Tom Lane)", "commit_aliases": ["80259d4db", "d56a5f994"], "source_commits": ["d56a5f994"], "source_entry_id": "10.2/changes/033", "db_id": "9522db0ae1dc127c0a197eaa4b85bfec", "patch_ids": ["6d6a957b2b25f111f83cd612c68557c7"], "statement_hash": "7761756e30c44511bdf769f677c2fc45d6384c504d5807899b2e965a7a093d5c", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-d556001fdfa4af33", "cves": [], "html": "<p>修复使用多个 Gather 节点的并行查询中的崩溃（Thomas Munro）</p>", "text": "修复使用多个 Gather 节点的并行查询中的崩溃（Thomas Munro）", "title": "修复使用多个 Gather 节点的并行查询中的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "5bb2ed9db6e1644e4f7d49004752184902fbc0563e53438d02f0dee6df5aa971", "section_path": ["变更"], "commit_groups": [["b70ea4c75", "fd7c0fa73"]], "identity_text": "Fix crashes in parallel queries using more than one Gather node (Thomas Munro)", "commit_aliases": ["b70ea4c75", "fd7c0fa73"], "source_commits": ["b70ea4c75"], "source_entry_id": "10.2/changes/034", "db_id": "e1eedfaa23947a44e6148bf47bba78ed", "patch_ids": ["24e405c42969ea586b26805d976ad341"], "statement_hash": "eb9ff822950b8f9eee92feee20182774319d1929b0ccdeed1561c53d421e19c3", "relations": [], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-2db36c249ba192c6", "cves": [], "html": "<p>修复并行索引扫描在处理已删除或半死亡索引页时挂起的问题（Amit Kapila）</p>", "text": "修复并行索引扫描在处理已删除或半死亡索引页时挂起的问题（Amit Kapila）", "title": "修复并行索引扫描在处理已删除或半死亡索引页时挂起的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "ac3a3c1eababdbf83ba1a1bf61f936cf0c247ad90e5947e4206811abeffe0282", "section_path": ["变更"], "commit_groups": [["192ffe1cb", "884a60840"]], "identity_text": "Fix hang in parallel index scan when processing a deleted or half-dead index page (Amit Kapila)", "commit_aliases": ["192ffe1cb", "884a60840"], "source_commits": ["192ffe1cb"], "source_entry_id": "10.2/changes/035", "db_id": "0699c16efa1bd18ebf2bc4ae9eb44c58", "patch_ids": ["960a97bf0ce78e41d8583db99ec6e96a"], "statement_hash": "1b97db03072ad106ababa514430b424929386b00a7b963e3d68a1c22af86c547", "relations": [], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-47794f4af74bd4fe", "cves": [], "html": "<p>避免并行位图堆扫描无法分配共享内存段时发生崩溃（Robert Haas）</p>", "text": "避免并行位图堆扫描无法分配共享内存段时发生崩溃（Robert Haas）", "title": "避免并行位图堆扫描无法分配共享内存段时发生崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "29cd6a1b45f1dbd0a9b378d952926967e029770361b7c32ebbe90dba404d4e82", "section_path": ["变更"], "commit_groups": [["c6755e233", "ec7629dfb"]], "identity_text": "Avoid crash if parallel bitmap heap scan is unable to allocate a shared memory segment (Robert Haas)", "commit_aliases": ["c6755e233", "ec7629dfb"], "source_commits": ["ec7629dfb"], "source_entry_id": "10.2/changes/036", "db_id": "98e8c4f8b70fa43e47bab231ee1203eb", "patch_ids": ["2b984ca2e763ce591ba50864aba2ff0f"], "statement_hash": "cb1bcf66d9110ad5d77cdab58c13841d8b21a6a63f2773bbafaae8c2763abe75", "relations": [], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-43652c9f1754cf86", "cves": [], "html": "<p>处理并行工作进程启动失败的情况（Amit Kapila，Robert Haas）</p>\n<p>以前，如果由于 <code>fork()</code> 失败或其他低概率问题无法启动工作进程，并行查询往往会无限挂起。</p>", "text": "处理并行工作进程启动失败的情况（Amit Kapila，Robert Haas） 以前，如果由于 fork() 失败或其他低概率问题无法启动工作进程，并行查询往往会无限挂起。", "title": "处理并行工作进程启动失败的情况", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "408be86cfd64755ee26cb3ecfc967a95f5b1937359e0840d4f905ed1281a3443", "section_path": ["变更"], "commit_groups": [["0426a77ce", "28724fd90", "a8ef4e81e", "b75644066", "facd94e72"], ["2843c01a5", "2badb5afb", "383e4268f"]], "identity_text": "Cope with failure to start a parallel worker process (Amit Kapila, Robert Haas) Parallel query previously tended to hang indefinitely if a worker could not be started, as the result of fork() failure or other low-probability problems.", "commit_aliases": ["0426a77ce", "2843c01a5", "28724fd90", "2badb5afb", "383e4268f", "a8ef4e81e", "b75644066", "facd94e72"], "source_commits": ["383e4268f", "a8ef4e81e"], "source_entry_id": "10.2/changes/037", "db_id": "4e971de322b6927fa12fd621eb383aa1", "patch_ids": ["68c60adfc1b8d79f7d1477698e637734", "e8189e6c893701b6e2c00833b85f9943"], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05", "relations": [{"rule": 2, "type": "equivalent", "target": "28e0f5c1a56cedd75a944b0038dc3930", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05"}}, {"rule": 2, "type": "equivalent", "target": "5f433863c9741c37f4bc74b83c759469", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05"}}, {"rule": 2, "type": "equivalent", "target": "912057b0fb784495baa32fbcad51b36e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "912057b0fb784495baa32fbcad51b36e", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "应对并行工作者进程启动失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05"}, "url": "/docs/compare/?release=9.6.7#9.6.7-6b4b1d5319fd0a9a", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "5f433863c9741c37f4bc74b83c759469", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "应对并行工作者进程启动失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05"}, "url": "/docs/compare/?release=9.5.11#9.5.11-6b4b1d5319fd0a9a", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "28e0f5c1a56cedd75a944b0038dc3930", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "应对并行工作者进程启动失败", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "f7f60e1ef443b57d289fa9095d7ea04d5e2c567acccda0a53c262f05943efa05"}, "url": "/docs/compare/?release=9.4.16#9.4.16-6b4b1d5319fd0a9a", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}]}, {"id": "10.2-46ba06ae6de5fa5e", "cves": [], "html": "<p>避免并行查询启动期间无法取得任何并行工作进程时发生不必要的失败（Robert Haas）</p>", "text": "避免并行查询启动期间无法取得任何并行工作进程时发生不必要的失败（Robert Haas）", "title": "避免并行查询启动期间无法取得任何并行工作进程时发生不必要的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "163fe40c821385fb3d90e70e8747dfc951897539b35910e12cdc5fd05c37b807", "section_path": ["变更"], "commit_groups": [["445dbd82a", "dba6e75c1"]], "identity_text": "Avoid unnecessary failure when no parallel workers can be obtained during parallel query startup (Robert Haas)", "commit_aliases": ["445dbd82a", "dba6e75c1"], "source_commits": ["dba6e75c1"], "source_entry_id": "10.2/changes/038", "db_id": "043a0aa3c32670da245d93acbdc53e93", "patch_ids": ["7fb49aa2383ebcbc97c392a32ce5deca"], "statement_hash": "2d29df54bcd1457e619a9661cdc1cea4f696e5c5522fc0634ff2dcef3981130b", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-5bb8f3d3bbe45c07", "cves": [], "html": "<p>修复从并行工作进程收集 <code>EXPLAIN</code> 统计信息的问题（Amit Kapila，Thomas Munro）</p>", "text": "修复从并行工作进程收集 EXPLAIN 统计信息的问题（Amit Kapila，Thomas Munro）", "title": "修复从并行工作进程收集 EXPLAIN 统计信息的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "03d8d15c54c9c2266a2793e6f6a07b6ef66346877a1ee0038da713f0db1d94c4", "section_path": ["变更"], "commit_groups": [["2157a61b5", "72567f617", "8526bcb2d"]], "identity_text": "Fix collection of EXPLAIN statistics from parallel workers (Amit Kapila, Thomas Munro)", "commit_aliases": ["2157a61b5", "72567f617", "8526bcb2d"], "source_commits": ["72567f617"], "source_entry_id": "10.2/changes/039", "db_id": "925d351afafe20b26cffd43e5a213e30", "patch_ids": ["6ba7c5b7d891ffa779601f5ca9aaf5be"], "statement_hash": "7a672b8d8f1c4092225782922038e5288a69abaea2d95765f2dbcbec011dd224", "relations": [{"rule": 2, "type": "equivalent", "target": "2b7b460c370c084ee5adff225624057c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a672b8d8f1c4092225782922038e5288a69abaea2d95765f2dbcbec011dd224"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2b7b460c370c084ee5adff225624057c", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复从并行工作者收集 EXPLAIN 统计信息", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "7a672b8d8f1c4092225782922038e5288a69abaea2d95765f2dbcbec011dd224"}, "url": "/docs/compare/?release=9.6.7#9.6.7-1db64b23351a4311", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}]}, {"id": "10.2-5622a4a962613357", "cves": [], "html": "<p>确保传给并行工作进程的查询字符串正确地以空字符结尾（Thomas Munro）</p>\n<p>这避免了这些工作进程在 postmaster 日志中输出垃圾内容。</p>", "text": "确保传给并行工作进程的查询字符串正确地以空字符结尾（Thomas Munro） 这避免了这些工作进程在 postmaster 日志中输出垃圾内容。", "title": "确保传给并行工作进程的查询字符串正确地以空字符结尾", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "ff13828dac83593e9b4b03b1a87e248811477fc3ff4d22ec5273b3261d5a688e", "section_path": ["变更"], "commit_groups": [["7be0d775a", "f94eec490"]], "identity_text": "Ensure that query strings passed to parallel workers are correctly null-terminated (Thomas Munro) This prevents emitting garbage in postmaster log output from such workers.", "commit_aliases": ["7be0d775a", "f94eec490"], "source_commits": ["7be0d775a"], "source_entry_id": "10.2/changes/040", "db_id": "8ef6d06e93359823ae84b86ad9ce7c39", "patch_ids": ["795c117b7e99a6d4587fef7c2a193057"], "statement_hash": "e9e204f860d7579eb98ebb7518959f7d6ed84cd3b8d7d620b42fd472f6d4befd", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-cbb2cf5ab2d81b71", "cves": [], "html": "<p>避免使用 <code>__int128</code> 时作出不安全的对齐假设（Tom Lane）</p>\n<p>编译器通常假定 <code>__int128</code> 变量按 16 字节边界对齐，但我们的内存分配基础设施尚不能保证这一点，且由于多种原因，提高 MAXALIGN 设置似乎不可行。调整代码，仅在能够让编译器采用较低对齐要求时才允许使用 <code>__int128</code>。迄今已知的唯一症状是某些并行聚合查询发生崩溃。</p>", "text": "避免使用 __int128 时作出不安全的对齐假设（Tom Lane） 编译器通常假定 __int128 变量按 16 字节边界对齐，但我们的内存分配基础设施尚不能保证这一点，且由于多种原因，提高 MAXALIGN 设置似乎不可行。调整代码，仅在能够让编译器采用较低对齐要求时才允许使用 __int128。迄今已知的唯一症状是某些并行聚合查询发生崩溃。", "title": "避免使用 __int128 时作出不安全的对齐假设", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "59fa4e7188352afa2b9cfe705333f8c6ed8148678e6c56fdf338b358b21daef6", "section_path": ["变更"], "commit_groups": [["4a15f87d2", "619a8c47d", "751804998", "d4e38489f"]], "identity_text": "Avoid unsafe alignment assumptions when working with __int128 (Tom Lane) Typically, compilers assume that __int128 variables are aligned on 16-byte boundaries, but our memory allocation infrastructure isn't prepared to guarantee that, and increasing the setting of MAXALIGN seems infeasible for multiple reasons. Adjust the code to allow use of __int128 only when we can tell the compiler to assume lesser alignment. The only known symptom of this problem so far is crashes in some parallel aggregation queries.", "commit_aliases": ["4a15f87d2", "619a8c47d", "751804998", "d4e38489f"], "source_commits": ["619a8c47d"], "source_entry_id": "10.2/changes/041", "db_id": "8254372163ea60d86d0db416238a1a46", "patch_ids": ["3fd84d02b185a3dc2c4ede312839351f"], "statement_hash": "5ab4008c7c39c4c8d221a32ef9ccce2a76645415e05419661f903f8111dade77", "relations": [{"rule": 2, "type": "equivalent", "target": "358035aaa951e105360b91b0086db322", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ab4008c7c39c4c8d221a32ef9ccce2a76645415e05419661f903f8111dade77"}}, {"rule": 2, "type": "equivalent", "target": "f992d405a4f26889b01734117727425a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ab4008c7c39c4c8d221a32ef9ccce2a76645415e05419661f903f8111dade77"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "358035aaa951e105360b91b0086db322", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "避免使用 __int128 时做出不安全的对齐假定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ab4008c7c39c4c8d221a32ef9ccce2a76645415e05419661f903f8111dade77"}, "url": "/docs/compare/?release=9.6.7#9.6.7-d56fce98455525f6", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "f992d405a4f26889b01734117727425a", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "避免使用 __int128 时做出不安全的对齐假定", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5ab4008c7c39c4c8d221a32ef9ccce2a76645415e05419661f903f8111dade77"}, "url": "/docs/compare/?release=9.5.11#9.5.11-d56fce98455525f6", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}]}, {"id": "10.2-85a96a8e38055d4d", "cves": [], "html": "<p>防止规划嵌套极深的集合操作（<code>UNION</code>/<code>INTERSECT</code>/<code>EXCEPT</code>）时发生栈溢出崩溃（Tom Lane）</p>", "text": "防止规划嵌套极深的集合操作（UNION/INTERSECT/EXCEPT）时发生栈溢出崩溃（Tom Lane）", "title": "防止规划嵌套极深的集合操作（UNION/INTERSECT/EXCEPT）时发生栈溢出崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "6e72e2525350427e446b918be3f00502f36f95f5dd596a8bf89b026443896deb", "section_path": ["变更"], "commit_groups": [["06efc5cf5", "1b2a3860d", "35a528062", "4e9fb4bfe", "c03fc8462", "e194f1383"]], "identity_text": "Prevent stack-overflow crashes when planning extremely deeply nested set operations (UNION/INTERSECT/EXCEPT) (Tom Lane)", "commit_aliases": ["06efc5cf5", "1b2a3860d", "35a528062", "4e9fb4bfe", "c03fc8462", "e194f1383"], "source_commits": ["1b2a3860d"], "source_entry_id": "10.2/changes/042", "db_id": "c39c8bd24f5ac242f0b32c2b20b718a4", "patch_ids": ["9f94848a6a3a1203fa32195be7ddfc0e"], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37", "relations": [{"rule": 2, "type": "equivalent", "target": "01146443770f86ec5e5ca59fa9dbf321", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}}, {"rule": 2, "type": "equivalent", "target": "568acb1455a8e36310b0b1c93fa873e3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}}, {"rule": 2, "type": "equivalent", "target": "70e56a68f5bcb62b2cfbed2160e0f4dd", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}}, {"rule": 2, "type": "equivalent", "target": "c0ab81df51c3929d239015f3a85d7c4d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c0ab81df51c3929d239015f3a85d7c4d", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}, "url": "/docs/compare/?release=9.6.7#9.6.7-6b5d775673a68200", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "01146443770f86ec5e5ca59fa9dbf321", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}, "url": "/docs/compare/?release=9.5.11#9.5.11-6b5d775673a68200", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "568acb1455a8e36310b0b1c93fa873e3", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}, "url": "/docs/compare/?release=9.4.16#9.4.16-6b5d775673a68200", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "70e56a68f5bcb62b2cfbed2160e0f4dd", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "防止规划极深层嵌套集合操作（UNION/INTERSECT/EXCEPT）时的栈溢出崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "2e5305bde5e99938d4c50d70c4ff02af420da9937f6e79fea3652a574956dc37"}, "url": "/docs/compare/?release=9.3.21#9.3.21-6b5d775673a68200", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-c9e196d4ab247ed3", "cves": [], "html": "<p>避免在对作为归并连接内侧子节点的索引扫描执行 EvalPlanQual 重新检查时发生崩溃（Tom Lane）</p>\n<p>只有在对连接执行更新或 <code>SELECT FOR UPDATE</code>，且某个选中行同时被并发更新时，才可能出现此问题。</p>", "text": "避免在对作为归并连接内侧子节点的索引扫描执行 EvalPlanQual 重新检查时发生崩溃（Tom Lane） 只有在对连接执行更新或 SELECT FOR UPDATE，且某个选中行同时被并发更新时，才可能出现此问题。", "title": "避免在对作为归并连接内侧子节点的索引扫描执行 EvalPlanQual 重新检查时发生崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "d9519d7a427afa3ad8ba4afa13eb6c8a1292e02113b7b7a9301449d812c03e4a", "section_path": ["变更"], "commit_groups": [["2e668c522", "78433f41f"]], "identity_text": "Avoid crash during an EvalPlanQual recheck of an indexscan that is the inner child of a merge join (Tom Lane) This could only happen during an update or SELECT FOR UPDATE of a join, when there is a concurrent update of some selected row.", "commit_aliases": ["2e668c522", "78433f41f"], "source_commits": ["78433f41f"], "source_entry_id": "10.2/changes/043", "db_id": "541a7593067bec50c085e120568c1cc8", "patch_ids": ["b9facf3f44ffcb653388b13cd13c9e14"], "statement_hash": "b4a33090bbe79be32ec1cd40507e4f11c8044f42ac5d7343ab48caed7e9a48cb", "relations": [], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-3bf60ce3bcebb328", "cves": [], "html": "<p>修复为表定义了扩展统计信息但无法计算时自动清理发生的崩溃（Álvaro Herrera）</p>", "text": "修复为表定义了扩展统计信息但无法计算时自动清理发生的崩溃（Álvaro Herrera）", "title": "修复为表定义了扩展统计信息但无法计算时自动清理发生的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "7dd7191701f19560b278b9a860e06de56ac7562117247631c0faa14bd77b3b70", "section_path": ["变更"], "commit_groups": [["414cd434f", "d4607590b"]], "identity_text": "Fix crash in autovacuum when extended statistics are defined for a table but can't be computed (Álvaro Herrera)", "commit_aliases": ["414cd434f", "d4607590b"], "source_commits": ["d4607590b"], "source_entry_id": "10.2/changes/044", "db_id": "bb21088d25b2179b5e485b135dc153de", "patch_ids": ["24190cbe0423f767d90ef28ed0858380"], "statement_hash": "188f237f08c78ba52515518fc1464f4c0eed8c727eef4632117b2aaa30c152ac", "relations": [], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-5f97cba345d98cab", "cves": [], "html": "<p>修复 <code>pg_hba.conf</code> 中某些类型的 LDAP URL 导致的空指针崩溃（Thomas Munro）</p>", "text": "修复 pg_hba.conf 中某些类型的 LDAP URL 导致的空指针崩溃（Thomas Munro）", "title": "修复 pg_hba.conf 中某些类型的 LDAP URL 导致的空指针崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "7cb3443e788016eb78320053a7a5368994ed4addac9ec3664f15b638d9df41a5", "section_path": ["变更"], "commit_groups": [["0bcdab58e", "0c98d0dd5", "62906461c", "9efd83bfd", "d380d080f", "f9e2885d5"]], "identity_text": "Fix null-pointer crashes for some types of LDAP URLs appearing in pg_hba.conf (Thomas Munro)", "commit_aliases": ["0bcdab58e", "0c98d0dd5", "62906461c", "9efd83bfd", "d380d080f", "f9e2885d5"], "source_commits": ["f9e2885d5"], "source_entry_id": "10.2/changes/045", "db_id": "7f352f1f8330378d049091ee91844a5b", "patch_ids": ["1755354d78d86e3eff42b129f39f3702"], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46", "relations": [{"rule": 2, "type": "equivalent", "target": "3c9d22b3c22a6f1ca4e410e0748abf03", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}}, {"rule": 2, "type": "equivalent", "target": "ae63d513a9079f9c6cc772c910b8b247", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}}, {"rule": 2, "type": "equivalent", "target": "bca9bf5667364948df95ee66aa7f939d", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}}, {"rule": 2, "type": "equivalent", "target": "beca6294db18ff71808c71309eef783e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ae63d513a9079f9c6cc772c910b8b247", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}, "url": "/docs/compare/?release=9.6.7#9.6.7-3a04f8f2f657ef4f", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "beca6294db18ff71808c71309eef783e", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}, "url": "/docs/compare/?release=9.5.11#9.5.11-3a04f8f2f657ef4f", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "bca9bf5667364948df95ee66aa7f939d", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}, "url": "/docs/compare/?release=9.4.16#9.4.16-3a04f8f2f657ef4f", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "3c9d22b3c22a6f1ca4e410e0748abf03", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 pg_hba.conf 中出现的某些类型 LDAP URL 的空指针崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4e409fb26b969875e83a5d241117f7cd7d1f1c459ac34ccbe22266ac96a40f46"}, "url": "/docs/compare/?release=9.3.21#9.3.21-3a04f8f2f657ef4f", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-4020dafb16f3c60e", "cves": [], "html": "<p>防止简单 hash 表过度增长导致内存不足失败（Tomas Vondra，Andres Freund）</p>", "text": "防止简单 hash 表过度增长导致内存不足失败（Tomas Vondra，Andres Freund）", "title": "防止简单 hash 表过度增长导致内存不足失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "d1b8fcc19fabd870ded594bc8c88fe9a22db2466bfd8b9b7c5f900281265d56c", "section_path": ["变更"], "commit_groups": [["ab9f2c429", "d1aac2998"], ["c068f8772", "d18d4bca8"], ["c0fda304d"]], "identity_text": "Prevent out-of-memory failures due to excessive growth of simple hash tables (Tomas Vondra, Andres Freund)", "commit_aliases": ["ab9f2c429", "c068f8772", "c0fda304d", "d18d4bca8", "d1aac2998"], "source_commits": ["c0fda304d", "d18d4bca8", "d1aac2998"], "source_entry_id": "10.2/changes/046", "db_id": "0531ec21eeab300dd8e6dc23f29da209", "patch_ids": ["0592acc44e4a848390a675ce2cdfd498", "d6a5709c9ec79f1be5d599aabdbbb8d8", "fb235344c21db07c2649296841c034f6"], "statement_hash": "8e78baacff98108550b8601b3f20e2f45a66ee3c6deb669e4c198330fb2bb10b", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-0965230c18198c0d", "cves": [], "html": "<p>修复 PL/pgSQL 文档中的示例 <code>INSTR()</code> 函数（Yugo Nagata，Tom Lane）</p>\n<p>这些函数声称与 <span>Oracle</span>® 兼容，但实际上并不完全兼容。特别是，对负的第三个参数的解释存在差异：Oracle 认为负值表示目标子串可以开始的最后一个位置，而我们的函数将其视为目标子串可以结束的最后一个位置。另外，Oracle 会在第四个参数为零或负值时抛出错误，而我们的函数会返回零。</p>\n<p>示例代码已作调整，以更准确地匹配 Oracle 的行为。已将此代码复制到应用程序中的用户可以考虑更新其副本。</p>", "text": "修复 PL/pgSQL 文档中的示例 INSTR() 函数（Yugo Nagata，Tom Lane） 这些函数声称与 Oracle® 兼容，但实际上并不完全兼容。特别是，对负的第三个参数的解释存在差异：Oracle 认为负值表示目标子串可以开始的最后一个位置，而我们的函数将其视为目标子串可以结束的最后一个位置。另外，Oracle 会在第四个参数为零或负值时抛出错误，而我们的函数会返回零。 示例代码已作调整，以更准确地匹配 Oracle 的行为。已将此代码复制到应用程序中的用户可以考虑更新其副本。", "title": "修复 PL/pgSQL 文档中的示例 INSTR() 函数", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "d4bbede3164feaeba32871c5d867c6636654540e6e29df73a697b962fb9209b3", "section_path": ["变更"], "commit_groups": [["08adf688f", "10bcd4165", "122605194", "3c1e9fd23", "45bfef7fb", "493cdc8ee"]], "identity_text": "Fix sample INSTR() functions in the PL/pgSQL documentation (Yugo Nagata, Tom Lane) These functions are stated to be Oracle compatible, but they weren't exactly. In particular, there was a discrepancy in the interpretation of a negative third parameter: Oracle thinks that a negative value indicates the last place where the target substring can begin, whereas our functions took it as the last place where the target can end. Also, Oracle throws an error for a zero or negative fourth parameter, whereas our functions returned zero. The sample code has been adjusted to match Oracle's behavior more precisely. Users who have copied this code into their applications may wish to update their copies.", "commit_aliases": ["08adf688f", "10bcd4165", "122605194", "3c1e9fd23", "45bfef7fb", "493cdc8ee"], "source_commits": ["08adf688f"], "source_entry_id": "10.2/changes/047", "db_id": "4deafbbde1d67134a3ba61a5633ecec4", "patch_ids": ["c992beea7a4ddcf196cf4f774b8609c0"], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba", "relations": [{"rule": 2, "type": "equivalent", "target": "074fbd98682930dbc3e7ac9e8e70373a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}}, {"rule": 2, "type": "equivalent", "target": "4122a38677a7d168668c054735ce38bf", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}}, {"rule": 2, "type": "equivalent", "target": "bb1989d6670ac970ea2dad251fc2a4f4", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}}, {"rule": 2, "type": "equivalent", "target": "f21202afc895bb07ec2a18d95aa85e98", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bb1989d6670ac970ea2dad251fc2a4f4", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 PL/pgSQL 文档中的 INSTR() 示例函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}, "url": "/docs/compare/?release=9.6.7#9.6.7-10bc6b882e840284", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "4122a38677a7d168668c054735ce38bf", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 PL/pgSQL 文档中的 INSTR() 示例函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}, "url": "/docs/compare/?release=9.5.11#9.5.11-10bc6b882e840284", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "f21202afc895bb07ec2a18d95aa85e98", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 PL/pgSQL 文档中的 INSTR() 示例函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}, "url": "/docs/compare/?release=9.4.16#9.4.16-10bc6b882e840284", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "074fbd98682930dbc3e7ac9e8e70373a", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 PL/pgSQL 文档中的 INSTR() 示例函数", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "de23639739a3c95ef29580cb3daca5a44562b6f62313f3abf54e2536496a9aba"}, "url": "/docs/compare/?release=9.3.21#9.3.21-10bc6b882e840284", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-df145085c9ee1131", "cves": [], "html": "<p>修复 <span>pg_dump</span>，使归档输出格式中的 ACL（权限）、注释和安全标签条目能够被可靠识别（Tom Lane）</p>\n<p>ACL 归档条目的<span>“<span>标签</span>”</span>部分通常只是关联对象的名称。现在改为以对象类型开头，使 ACL 与注释和安全标签归档条目现有的约定保持一致。另外，如果存在整个数据库的注释和安全标签条目，也修正这些条目，使其标签以 <code>DATABASE</code> 开头，从而遵循这一约定。这可以防止通过检查标签是否以 <code>LARGE OBJECT</code> 开头来识别大对象相关条目的代码产生错误匹配。错误匹配可能将条目错误地归为数据而非模式，从而在仅转储模式或仅转储数据时产生不希望的结果。</p>\n<p>注意，此变更会影响 <code>pg_restore --list</code> 输出中的用户可见结果。</p>", "text": "修复 pg_dump，使归档输出格式中的 ACL（权限）、注释和安全标签条目能够被可靠识别（Tom Lane） ACL 归档条目的“标签”部分通常只是关联对象的名称。现在改为以对象类型开头，使 ACL 与注释和安全标签归档条目现有的约定保持一致。另外，如果存在整个数据库的注释和安全标签条目，也修正这些条目，使其标签以 DATABASE 开头，从而遵循这一约定。这可以防止通过检查标签是否以 LARGE OBJECT 开头来识别大对象相关条目的代码产生错误匹配。错误匹配可能将条目错误地归为数据而非模式，从而在仅转储模式或仅转储数据时产生不希望的结果。 注意，此变更会影响 pg_restore --list 输出中的用户可见结果。", "title": "修复 pg_dump，使归档输出格式中的 ACL（权限）、注释和安全标签条目能够被可靠识别", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "6d1001641944092f1d219919801ff3915ca3a94bdf5d5e7c38dde49fad41311d", "section_path": ["变更"], "commit_groups": [["2b792ab09", "367e2b230", "46246fd9d", "52cc1b484", "da83ca7d9", "ef115621c"]], "identity_text": "Fix pg_dump to make ACL (permissions), comment, and security label entries reliably identifiable in archive output formats (Tom Lane) The tag portion of an ACL archive entry was usually just the name of the associated object. Make it start with the object type instead, bringing ACLs into line with the convention already used for comment and security label archive entries. Also, fix the comment and security label entries for the whole database, if present, to make their tags start with DATABASE so that they also follow this convention. This prevents false matches in code that tries to identify large-object-related entries by seeing if the tag starts with LARGE OBJECT. That could have resulted in misclassifying entries as data rather than schema, with undesirable results in a schema-only or data-only dump. Note that this change has user-visible results in the output of pg_restore --list.", "commit_aliases": ["2b792ab09", "367e2b230", "46246fd9d", "52cc1b484", "da83ca7d9", "ef115621c"], "source_commits": ["46246fd9d"], "source_entry_id": "10.2/changes/048", "db_id": "3b1f9393e931bb132457f7b3910110ac", "patch_ids": ["e55200f69a79b333aa0a28e864f04d75"], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc", "relations": [{"rule": 2, "type": "equivalent", "target": "0ca9e270193416cad270eafba608b5f8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}}, {"rule": 2, "type": "equivalent", "target": "81373cee02430fe4af2cf207aa51dde5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}}, {"rule": 2, "type": "equivalent", "target": "f35413a1afcd2620afa667bd34efb3af", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}}, {"rule": 2, "type": "equivalent", "target": "f7bf3dce4ce6e4a65a97b8e49bdff2f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "f7bf3dce4ce6e4a65a97b8e49bdff2f7", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}, "url": "/docs/compare/?release=9.6.7#9.6.7-bbdffd1d51d41177", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "0ca9e270193416cad270eafba608b5f8", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}, "url": "/docs/compare/?release=9.5.11#9.5.11-bbdffd1d51d41177", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "81373cee02430fe4af2cf207aa51dde5", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}, "url": "/docs/compare/?release=9.4.16#9.4.16-bbdffd1d51d41177", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "f35413a1afcd2620afa667bd34efb3af", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 pg_dump 使 ACL（权限）、注释和安全标签条目在归档输出格式中可靠可识别", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "208a1a037b4317c83088494c3af0cafb5ec6a9a8911bd2f31dce7ca085cc4acc"}, "url": "/docs/compare/?release=9.3.21#9.3.21-bbdffd1d51d41177", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-1eecac785743184e", "cves": [], "html": "<p>重命名 <span>pg_rewind</span> 的 <code>copy_file_range</code> 函数，避免与 Linux 新增的同名系统调用冲突（Andres Freund）</p>\n<p>此变更避免了使用较新 glibc 版本时的构建失败。</p>", "text": "重命名 pg_rewind 的 copy_file_range 函数，避免与 Linux 新增的同名系统调用冲突（Andres Freund） 此变更避免了使用较新 glibc 版本时的构建失败。", "title": "重命名 pg_rewind 的 copy_file_range 函数，避免与 Linux 新增的同名系统调用冲突", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "4a14df99e2121d6eaf0272fb40929a57245a949c5172c2669aa9e729f8f2c324", "section_path": ["变更"], "commit_groups": [["3e68686e2", "ceee51e38", "e3fdb7c00", "ea4cbf8f1"]], "identity_text": "Rename pg_rewind's copy_file_range function to avoid conflict with new Linux system call of that name (Andres Freund) This change prevents build failures with newer glibc versions.", "commit_aliases": ["3e68686e2", "ceee51e38", "e3fdb7c00", "ea4cbf8f1"], "source_commits": ["e3fdb7c00"], "source_entry_id": "10.2/changes/049", "db_id": "9a54b364bbc9fab1b05ea2a58c02e7f3", "patch_ids": ["047ae9cff4b9b57f67261d6d1f7bffe2"], "statement_hash": "da9577ec4bb49012598aca2938ad76c6d61619463721cf0fa473934d0a58ae5a", "relations": [{"rule": 2, "type": "equivalent", "target": "15df591343519b5476d876f19c9dc608", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da9577ec4bb49012598aca2938ad76c6d61619463721cf0fa473934d0a58ae5a"}}, {"rule": 2, "type": "equivalent", "target": "ab3d0a759d27a52424c5ee4b0e2d568c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da9577ec4bb49012598aca2938ad76c6d61619463721cf0fa473934d0a58ae5a"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "15df591343519b5476d876f19c9dc608", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "重命名 pg_rewind 的 copy_file_range 函数，避免与该名称的新 Linux 系统调用冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da9577ec4bb49012598aca2938ad76c6d61619463721cf0fa473934d0a58ae5a"}, "url": "/docs/compare/?release=9.6.7#9.6.7-5fc94161af5a1d69", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "ab3d0a759d27a52424c5ee4b0e2d568c", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "重命名 pg_rewind 的 copy_file_range 函数，避免与该名称的新 Linux 系统调用冲突", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "da9577ec4bb49012598aca2938ad76c6d61619463721cf0fa473934d0a58ae5a"}, "url": "/docs/compare/?release=9.5.11#9.5.11-5fc94161af5a1d69", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}]}, {"id": "10.2-582b4dd4528f6d14", "cves": [], "html": "<p>在 <span>ecpg</span> 中检测长度不正确的指示器数组并报告错误（David Rader）</p>", "text": "在 ecpg 中检测长度不正确的指示器数组并报告错误（David Rader）", "title": "在 ecpg 中检测长度不正确的指示器数组并报告错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "5726e75f53c84955528006c45def0ec5bafd0cb4a77508965436d08edf6c91be", "section_path": ["变更"], "commit_groups": [["2c1c4b060", "4eae1e6f5", "649aeb123", "8b89b7aac", "a0f5890a6", "f082ef836"]], "identity_text": "In ecpg, detect indicator arrays that do not have the correct length and report an error (David Rader)", "commit_aliases": ["2c1c4b060", "4eae1e6f5", "649aeb123", "8b89b7aac", "a0f5890a6", "f082ef836"], "source_commits": ["8b89b7aac"], "source_entry_id": "10.2/changes/050", "db_id": "23ebd41798b308ffaef0b9ec76885108", "patch_ids": ["aaeb05c2ab64b064eb9aed89ed8707fb"], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867", "relations": [{"rule": 2, "type": "equivalent", "target": "2bcc6c70c126ca045982a7568dd1c2a0", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}}, {"rule": 2, "type": "equivalent", "target": "30fd542104a3cc71e9b017949639401e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}}, {"rule": 2, "type": "equivalent", "target": "bc90c3b158d533f1785a76400861ddf8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}}, {"rule": 2, "type": "equivalent", "target": "ed00656fc4d0e1c664f2d46f7e9fdb9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "bc90c3b158d533f1785a76400861ddf8", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "在 ecpg 中，检测长度不正确的指示符数组并报错", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}, "url": "/docs/compare/?release=9.6.7#9.6.7-56321fffb2cf063c", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "ed00656fc4d0e1c664f2d46f7e9fdb9e", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "在 ecpg 中，检测长度不正确的指示符数组并报错", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}, "url": "/docs/compare/?release=9.5.11#9.5.11-56321fffb2cf063c", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "2bcc6c70c126ca045982a7568dd1c2a0", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在 ecpg 中，检测长度不正确的指示符数组并报错", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}, "url": "/docs/compare/?release=9.4.16#9.4.16-56321fffb2cf063c", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "30fd542104a3cc71e9b017949639401e", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "在 ecpg 中，检测长度不正确的指示符数组并报错", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "ed91a447df7c2fcd805aae2a9f8790c8bef46440b9d8232781dfb58a4b2f8867"}, "url": "/docs/compare/?release=9.3.21#9.3.21-56321fffb2cf063c", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-4eb5b76e22fb3c51", "cves": [], "html": "<p>修改 <code>contrib/cube</code> 的 <code>cube</code> <code>~&gt;</code> <code>int</code> 操作符的行为，使其与 KNN 搜索兼容（Alexander Korotkov）</p>\n<p>第二个参数（维度选择器）的含义已更改，使得即使处理维数不同的立方体，也能明确选中哪个值。</p>\n<p>这是一项不兼容变更，但由于该操作符的用途是 KNN 搜索，其现有行为似乎没什么用处。安装此更新后，任何使用此操作符的表达式索引或物化视图都需要重建索引或刷新。</p>", "text": "修改 contrib/cube 的 cube ~> int 操作符的行为，使其与 KNN 搜索兼容（Alexander Korotkov） 第二个参数（维度选择器）的含义已更改，使得即使处理维数不同的立方体，也能明确选中哪个值。 这是一项不兼容变更，但由于该操作符的用途是 KNN 搜索，其现有行为似乎没什么用处。安装此更新后，任何使用此操作符的表达式索引或物化视图都需要重建索引或刷新。", "title": "修改 contrib/cube 的 cube ~> int 操作符的行为，使其与 KNN 搜索兼容", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "491b7fa53e2f65e620f4e86e78fab9bf3db9de76f92de7009cb2f0766dcf8d93", "section_path": ["变更"], "commit_groups": [["563a053bd", "b8279a783", "bda5281fd"]], "identity_text": "Change the behavior of contrib/cube's cube ~> int operator to make it compatible with KNN search (Alexander Korotkov) The meaning of the second argument (the dimension selector) has been changed to make it predictable which value is selected even when dealing with cubes of varying dimensionalities. This is an incompatible change, but since the point of the operator was to be used in KNN searches, it seems rather useless as-is. After installing this update, any expression indexes or materialized views using this operator will need to be reindexed/refreshed.", "commit_aliases": ["563a053bd", "b8279a783", "bda5281fd"], "source_commits": ["b8279a783"], "source_entry_id": "10.2/changes/051", "db_id": "c082d0c5c448afa028fc402be054813f", "patch_ids": ["23cb79872ec7edc17508f708c192bb0a"], "statement_hash": "06a632f718d0eb5585bb9171aa1bc9c412fe238936e76fef4ec377f2c4bac6f1", "relations": [{"rule": 2, "type": "equivalent", "target": "d0b16e0b4537c63a0e077219d1edfc1c", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06a632f718d0eb5585bb9171aa1bc9c412fe238936e76fef4ec377f2c4bac6f1"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "d0b16e0b4537c63a0e077219d1edfc1c", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "更改 contrib/cube 的 cube ~> int 操作符的行为使其与 KNN 搜索兼容", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "06a632f718d0eb5585bb9171aa1bc9c412fe238936e76fef4ec377f2c4bac6f1"}, "url": "/docs/compare/?release=9.6.7#9.6.7-8c0e70d39ed94301", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}]}, {"id": "10.2-11f49ed08e3f0038", "cves": [], "html": "<p>避免 <code>contrib/hstore</code> 使用源指针与目标指针相同的 <code>memcpy()</code> 调用而触发 libc 断言（Tomas Vondra）</p>", "text": "避免 contrib/hstore 使用源指针与目标指针相同的 memcpy() 调用而触发 libc 断言（Tomas Vondra）", "title": "避免 contrib/hstore 使用源指针与目标指针相同的 memcpy() 调用而触发 libc 断言", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "c8f2707a2f5c5fc9ed2bc522de4d2513632b0ea43976c11dc8ec7041d237a29b", "section_path": ["变更"], "commit_groups": [["47226971e", "5c38ddebd", "630aceda5", "6e9ac0a2e", "d3f4e8a8a", "ddba32005"]], "identity_text": "Avoid triggering a libc assertion in contrib/hstore, due to use of memcpy() with equal source and destination pointers (Tomas Vondra)", "commit_aliases": ["47226971e", "5c38ddebd", "630aceda5", "6e9ac0a2e", "d3f4e8a8a", "ddba32005"], "source_commits": ["ddba32005"], "source_entry_id": "10.2/changes/052", "db_id": "13456404b4843af4eaef72200207a161", "patch_ids": ["6f611985c217ee13bb9ff9d38d54e9f2"], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c", "relations": [{"rule": 2, "type": "equivalent", "target": "068ae2b3cbc44395747b26db4b128abe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}}, {"rule": 2, "type": "equivalent", "target": "3bb0cb2aa359ceb514aa7d79f835ee81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}}, {"rule": 2, "type": "equivalent", "target": "d68235d9ea6153b9d5bc746fb9791109", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}}, {"rule": 2, "type": "equivalent", "target": "e4436dc9c2b9e496bac1a86048edd39b", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "068ae2b3cbc44395747b26db4b128abe", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}, "url": "/docs/compare/?release=9.6.7#9.6.7-28176ee2b29ae77d", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "3bb0cb2aa359ceb514aa7d79f835ee81", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}, "url": "/docs/compare/?release=9.5.11#9.5.11-28176ee2b29ae77d", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "e4436dc9c2b9e496bac1a86048edd39b", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}, "url": "/docs/compare/?release=9.4.16#9.4.16-28176ee2b29ae77d", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "d68235d9ea6153b9d5bc746fb9791109", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "避免 contrib/hstore 中因对相同源和目标指针使用 memcpy() 而触发 libc 断言", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "29789468601050b00a6e506d7e56051e705a1b5a2a3b8bcb2eb52d17d32f636c"}, "url": "/docs/compare/?release=9.3.21#9.3.21-28176ee2b29ae77d", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-9f10615bcb8686d1", "cves": [], "html": "<p>修复 <code>contrib/pageinspect</code> 中元组空值位图显示不正确的问题（Maksim Milyutin）</p>", "text": "修复 contrib/pageinspect 中元组空值位图显示不正确的问题（Maksim Milyutin）", "title": "修复 contrib/pageinspect 中元组空值位图显示不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "c64b095609f4383f7c6d1f7be4b346a79a7e6843eabb7d4d529b46d7210c8b28", "section_path": ["变更"], "commit_groups": [["0dc5dfcd7", "18869e202"], ["39cfe8619", "5ad1b1728", "ad592f4a6"]], "identity_text": "Fix incorrect display of tuples' null bitmaps in contrib/pageinspect (Maksim Milyutin)", "commit_aliases": ["0dc5dfcd7", "18869e202", "39cfe8619", "5ad1b1728", "ad592f4a6"], "source_commits": ["0dc5dfcd7", "5ad1b1728"], "source_entry_id": "10.2/changes/053", "db_id": "3e16904f4a6b92fd4d34b1f2577f80ee", "patch_ids": ["f53c81e68ff5b1cfdf17327942c69375", "fb39baaa181d8d990acc14b19202790c"], "statement_hash": "4091577f7f431cb5c01aa8ba5bb905a88f38071efa98e796f4e68912a8dac63c", "relations": [{"rule": 2, "type": "equivalent", "target": "35e7abc5cdc4509d7cc0bff47f9afd46", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4091577f7f431cb5c01aa8ba5bb905a88f38071efa98e796f4e68912a8dac63c"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "35e7abc5cdc4509d7cc0bff47f9afd46", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 contrib/pageinspect 中元组空位图的错误显示", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "4091577f7f431cb5c01aa8ba5bb905a88f38071efa98e796f4e68912a8dac63c"}, "url": "/docs/compare/?release=9.6.7#9.6.7-2dbd6348f5f2986c", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}]}, {"id": "10.2-be9f138f6284c0a5", "cves": [], "html": "<p>修复 <code>contrib/pageinspect</code> 的 <code>hash_page_items()</code> 函数输出不正确的问题（Masahiko Sawada）</p>", "text": "修复 contrib/pageinspect 的 hash_page_items() 函数输出不正确的问题（Masahiko Sawada）", "title": "修复 contrib/pageinspect 的 hash_page_items() 函数输出不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "873802fe503671ee0b599fd79f1cdca0121115eed23e32cbf6f61745d7cea11a", "section_path": ["变更"], "commit_groups": [["51fc1b09a", "b0313f9cc"]], "identity_text": "Fix incorrect output from contrib/pageinspect's hash_page_items() function (Masahiko Sawada)", "commit_aliases": ["51fc1b09a", "b0313f9cc"], "source_commits": ["51fc1b09a"], "source_entry_id": "10.2/changes/054", "db_id": "dff94298ea23b6fc005219fa673ac0cc", "patch_ids": ["f2209ea534cf456a4a30b0078257d1b7"], "statement_hash": "493d401cb81c08c2609db89857f1faeecb7e7c1ea3027733153321781c620b4e", "relations": [], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-9ac939d198523e65", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，避免构建涉及远程连接的计划时出现 <span>“<span>outer pathkeys do not match mergeclauses</span>”</span> 规划器错误（Robert Haas）</p>", "text": "在 contrib/postgres_fdw 中，避免构建涉及远程连接的计划时出现 “outer pathkeys do not match mergeclauses” 规划器错误（Robert Haas）", "title": "在 contrib/postgres_fdw 中，避免构建涉及远程连接的计划时出现 “outer pathkeys do not match mergeclauses” 规划器错误", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "4e2e68b547410f570e2ca4759a099e2d63cee4c0742de82e4cca9624b5b98e2f", "section_path": ["变更"], "commit_groups": [["3f05a30b5", "4a81c0229", "4bbf6edfb"], ["92123c6ea", "99f6a17dd", "d397f558d"]], "identity_text": "In contrib/postgres_fdw, avoid outer pathkeys do not match mergeclauses planner error when constructing a plan involving a remote join (Robert Haas)", "commit_aliases": ["3f05a30b5", "4a81c0229", "4bbf6edfb", "92123c6ea", "99f6a17dd", "d397f558d"], "source_commits": ["3f05a30b5", "92123c6ea"], "source_entry_id": "10.2/changes/055", "db_id": "2b40f94240b67916dab3ec3c10ed06d9", "patch_ids": ["a19cbd54d0db4f4d70dac72b85da787d", "b425a9a37d68d451e89e609715fd6ed0"], "statement_hash": "57b83516ee8ef736f75a5c5261096f79752f7515642de945899e026f8480cc98", "relations": [{"rule": 2, "type": "equivalent", "target": "600bbd6c0b48df27ca3351eecec28c35", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b83516ee8ef736f75a5c5261096f79752f7515642de945899e026f8480cc98"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "600bbd6c0b48df27ca3351eecec28c35", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "在 contrib/postgres_fdw 中，构造涉及远程连接的计划时避免 “outer pathkeys do not match mergeclauses” 规划器错误", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "57b83516ee8ef736f75a5c5261096f79752f7515642de945899e026f8480cc98"}, "url": "/docs/compare/?release=9.6.7#9.6.7-b71db59d780e7dba", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}]}, {"id": "10.2-078cc3d0dec530b6", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，避免存在重复 <code>GROUP BY</code> 条目时规划器失败（Jeevan Chalke）</p>", "text": "在 contrib/postgres_fdw 中，避免存在重复 GROUP BY 条目时规划器失败（Jeevan Chalke）", "title": "在 contrib/postgres_fdw 中，避免存在重复 GROUP BY 条目时规划器失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "ef705aefe244e581f62f05a4eb42d5224e75b81d98626ab550a65bf752792b4e", "section_path": ["变更"], "commit_groups": [["67854bc59", "e9f2703ab"]], "identity_text": "In contrib/postgres_fdw, avoid planner failure when there are duplicate GROUP BY entries (Jeevan Chalke)", "commit_aliases": ["67854bc59", "e9f2703ab"], "source_commits": ["67854bc59"], "source_entry_id": "10.2/changes/056", "db_id": "78cce6794045f0ecea81dca631307427", "patch_ids": ["dcab16c77c49b4d0f84d8fba2fba1888"], "statement_hash": "69e6419b893937691756b5bdf2310ff323bcff51d7113b777dfdc4d8705832e5", "relations": [], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "10.2-7faa20fe42e341cf", "cves": [], "html": "<p>提供在 macOS 上自动启动 Postgres 的新式示例（Tom Lane）</p>\n<p><code>contrib/start-scripts/osx</code> 中的脚本使用的基础设施已弃用十余年，在最近几年的 macOS 版本中已完全无法使用。新增子目录 <code>contrib/start-scripts/macos</code>，包含使用较新 <span>launchd</span> 基础设施的脚本。</p>", "text": "提供在 macOS 上自动启动 Postgres 的新式示例（Tom Lane） contrib/start-scripts/osx 中的脚本使用的基础设施已弃用十余年，在最近几年的 macOS 版本中已完全无法使用。新增子目录 contrib/start-scripts/macos，包含使用较新 launchd 基础设施的脚本。", "title": "提供在 macOS 上自动启动 Postgres 的新式示例", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "db504b940b9329e6b93287bcc20bb87b129932a216b51727c11846e9e0f8280a", "section_path": ["变更"], "commit_groups": [["0d9243903", "6313995c2", "77b76fea9", "7d98dc133", "9508d422b", "ac3b96268"]], "identity_text": "Provide modern examples of how to auto-start Postgres on macOS (Tom Lane) The scripts in contrib/start-scripts/osx use infrastructure that's been deprecated for over a decade, and which no longer works at all in macOS releases of the last couple of years. Add a new subdirectory contrib/start-scripts/macos containing scripts that use the newer launchd infrastructure.", "commit_aliases": ["0d9243903", "6313995c2", "77b76fea9", "7d98dc133", "9508d422b", "ac3b96268"], "source_commits": ["6313995c2"], "source_entry_id": "10.2/changes/057", "db_id": "0fdc2e226045f15715881ba8537fe99e", "patch_ids": ["8f9bdd483c3bf5c8eabd83dd9b2087a6"], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8", "relations": [{"rule": 2, "type": "equivalent", "target": "24dc5e73850a35319c0666b533a1aa3a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}}, {"rule": 2, "type": "equivalent", "target": "a157895cacd9516d8a3e9d6a31ee8b63", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}}, {"rule": 2, "type": "equivalent", "target": "bb7559029434b895fcfddb50d9d1ece6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}}, {"rule": 2, "type": "equivalent", "target": "f05d3a9513c452c22d1e9a2c91061922", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "24dc5e73850a35319c0666b533a1aa3a", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "提供在 macOS 上自动启动 Postgres 的现代示例", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}, "url": "/docs/compare/?release=9.6.7#9.6.7-46a1c69d76bee770", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "f05d3a9513c452c22d1e9a2c91061922", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "提供在 macOS 上自动启动 Postgres 的现代示例", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}, "url": "/docs/compare/?release=9.5.11#9.5.11-46a1c69d76bee770", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "a157895cacd9516d8a3e9d6a31ee8b63", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "提供在 macOS 上自动启动 Postgres 的现代示例", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}, "url": "/docs/compare/?release=9.4.16#9.4.16-46a1c69d76bee770", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "bb7559029434b895fcfddb50d9d1ece6", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "提供在 macOS 上自动启动 Postgres 的现代示例", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "e99512b72b91312511653d4652583a17ade6b802743b3c40fcb8bfaca59d10b8"}, "url": "/docs/compare/?release=9.3.21#9.3.21-46a1c69d76bee770", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-b25125f573955426", "cves": [], "html": "<p>修复 Windows 上 OpenSSL 特定配置库选择不正确的问题（Andrew Dunstan）</p>", "text": "修复 Windows 上 OpenSSL 特定配置库选择不正确的问题（Andrew Dunstan）", "title": "修复 Windows 上 OpenSSL 特定配置库选择不正确的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "11be720d05fdc92ea61e8466b04ca5ca7359a8e1e70b41134684651d171edd07", "section_path": ["变更"], "commit_groups": [["0fb69340b", "2d03daa7b", "5404145c5", "85cdcde1f", "99d5a3ffb", "d329d2d3e"]], "identity_text": "Fix incorrect selection of configuration-specific libraries for OpenSSL on Windows (Andrew Dunstan)", "commit_aliases": ["0fb69340b", "2d03daa7b", "5404145c5", "85cdcde1f", "99d5a3ffb", "d329d2d3e"], "source_commits": ["0fb69340b"], "source_entry_id": "10.2/changes/058", "db_id": "03fbe5da453e704a9f7b2c31d5f56b09", "patch_ids": ["9c71df1fa3af0480213895c24e672457"], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399", "relations": [{"rule": 2, "type": "equivalent", "target": "11e979639d15d29074555e35b178314a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}}, {"rule": 2, "type": "equivalent", "target": "1821ace7637e06949219db456023ab75", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}}, {"rule": 2, "type": "equivalent", "target": "35c027c555fdb7b27909b2417b5e53f7", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}}, {"rule": 2, "type": "equivalent", "target": "b6f28f745dffb36a98c91b630a747ea6", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "11e979639d15d29074555e35b178314a", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 Windows 上为 OpenSSL 错误选择配置特定的库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}, "url": "/docs/compare/?release=9.6.7#9.6.7-753f99569205dc0f", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "35c027c555fdb7b27909b2417b5e53f7", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 Windows 上为 OpenSSL 错误选择配置特定的库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}, "url": "/docs/compare/?release=9.5.11#9.5.11-753f99569205dc0f", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "b6f28f745dffb36a98c91b630a747ea6", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 Windows 上为 OpenSSL 错误选择配置特定的库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}, "url": "/docs/compare/?release=9.4.16#9.4.16-753f99569205dc0f", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "1821ace7637e06949219db456023ab75", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 Windows 上为 OpenSSL 错误选择配置特定的库", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "1ea908d647320216739f789ef04442d13d52aa2ea310bed5173281be2efd9399"}, "url": "/docs/compare/?release=9.3.21#9.3.21-753f99569205dc0f", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-4df2e1da054d8867", "cves": [], "html": "<p>支持链接到使用 MinGW 构建的 libperl 版本（Noah Misch）</p>\n<p>这允许使用某些常见的 Windows Perl 发行版构建 PL/Perl。</p>", "text": "支持链接到使用 MinGW 构建的 libperl 版本（Noah Misch） 这允许使用某些常见的 Windows Perl 发行版构建 PL/Perl。", "title": "支持链接到使用 MinGW 构建的 libperl 版本", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "7a53db8c9e1b7c921325d055221c691fe1e918974a1bdb848b682d6795188f30", "section_path": ["变更"], "commit_groups": [["055532bad", "470de6a24", "70dc7ad58", "7e0c574ee", "d78c3ca0e", "e2cc65050"], ["1695ce068", "558f62079", "83e6b1434", "84c4313c6", "da8eae56e", "f16a0958d"]], "identity_text": "Support linking to MinGW-built versions of libperl (Noah Misch) This allows building PL/Perl with some common Perl distributions for Windows.", "commit_aliases": ["055532bad", "1695ce068", "470de6a24", "558f62079", "70dc7ad58", "7e0c574ee", "83e6b1434", "84c4313c6", "d78c3ca0e", "da8eae56e", "e2cc65050", "f16a0958d"], "source_commits": ["e2cc65050", "f16a0958d"], "source_entry_id": "10.2/changes/059", "db_id": "227e18bb740b98a43e3c0590d886e950", "patch_ids": ["b52e727c8566ea74bf7e37583df64be5", "e5ad87380740dcb05319c83fe855d5cb"], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92", "relations": [{"rule": 2, "type": "equivalent", "target": "039685f6945228e7540d88a1d1dae4c3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}}, {"rule": 2, "type": "equivalent", "target": "049293f62d03819db6748a8f3a024190", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}}, {"rule": 2, "type": "equivalent", "target": "27c3ee1b4261beeaa64885e79865a075", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}}, {"rule": 2, "type": "equivalent", "target": "7fbe36a96fb9befdcfc79ef52fa232c8", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "7fbe36a96fb9befdcfc79ef52fa232c8", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "支持链接到 MinGW 构建的 libperl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}, "url": "/docs/compare/?release=9.6.7#9.6.7-d7da701af98363d5", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "049293f62d03819db6748a8f3a024190", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "支持链接到 MinGW 构建的 libperl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}, "url": "/docs/compare/?release=9.5.11#9.5.11-d7da701af98363d5", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "039685f6945228e7540d88a1d1dae4c3", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "支持链接到 MinGW 构建的 libperl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}, "url": "/docs/compare/?release=9.4.16#9.4.16-d7da701af98363d5", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "27c3ee1b4261beeaa64885e79865a075", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "支持链接到 MinGW 构建的 libperl 版本", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "214e3ac903ee3de3b960092db729643de8ac6fbd795d40971fddd79038f8bc92"}, "url": "/docs/compare/?release=9.3.21#9.3.21-d7da701af98363d5", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-904cfc565d6f8982", "cves": [], "html": "<p>修复 MSVC 构建，测试 32 位 libperl 是否需要 <code>-D_USE_32BIT_TIME_T</code>（Noah Misch）</p>\n<p>现有 Perl 发行版的要求并不一致，也没有任何可靠的方法报告这一要求，因此改为在构建时测试所用库的实际行为。</p>", "text": "修复 MSVC 构建，测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T（Noah Misch） 现有 Perl 发行版的要求并不一致，也没有任何可靠的方法报告这一要求，因此改为在构建时测试所用库的实际行为。", "title": "修复 MSVC 构建，测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "90e8e8bc141f52530dfa388b04b62b46a16596427dec03a9fbf33d80946ca8ab", "section_path": ["变更"], "commit_groups": [["140fa2fba", "188689942", "1c1a572d0", "65a00f303", "9b5c99790", "aed8d41af"]], "identity_text": "Fix MSVC build to test whether 32-bit libperl needs -D_USE_32BIT_TIME_T (Noah Misch) Available Perl distributions are inconsistent about what they expect, and lack any reliable means of reporting it, so resort to a build-time test on what the library being used actually does.", "commit_aliases": ["140fa2fba", "188689942", "1c1a572d0", "65a00f303", "9b5c99790", "aed8d41af"], "source_commits": ["9b5c99790"], "source_entry_id": "10.2/changes/060", "db_id": "4f10b5d5ac6eea55b9df82af9a09d0e7", "patch_ids": ["35757903486f06cc2a06ab15180a0ae7"], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327", "relations": [{"rule": 2, "type": "equivalent", "target": "1a22595b7cd68b734f8a5a7551f89247", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}}, {"rule": 2, "type": "equivalent", "target": "28df853935fd6bd79efc4f4325c6c920", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}}, {"rule": 2, "type": "equivalent", "target": "9036a968392bb422875a906ff6485fee", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}}, {"rule": 2, "type": "equivalent", "target": "f4b0040686d69756f3ebb2c84af1d349", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1a22595b7cd68b734f8a5a7551f89247", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}, "url": "/docs/compare/?release=9.6.7#9.6.7-d07f5a0bbe4513a3", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "9036a968392bb422875a906ff6485fee", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}, "url": "/docs/compare/?release=9.5.11#9.5.11-d07f5a0bbe4513a3", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "28df853935fd6bd79efc4f4325c6c920", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}, "url": "/docs/compare/?release=9.4.16#9.4.16-d07f5a0bbe4513a3", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "f4b0040686d69756f3ebb2c84af1d349", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "修复 MSVC 构建测试 32 位 libperl 是否需要 -D_USE_32BIT_TIME_T", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "0144077964ae151b8e72c535635da4e71ec263df554af7bd8f8ce7339fa45327"}, "url": "/docs/compare/?release=9.3.21#9.3.21-d07f5a0bbe4513a3", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-e678f47afd2a17a1", "cves": [], "html": "<p>在 Windows 上，在 postmaster 启动期间更早安装崩溃转储处理程序（Takayuki Tsunakawa）</p>\n<p>这可能使某些以前未产生转储的早期启动失败能够收集到核心转储。</p>", "text": "在 Windows 上，在 postmaster 启动期间更早安装崩溃转储处理程序（Takayuki Tsunakawa） 这可能使某些以前未产生转储的早期启动失败能够收集到核心转储。", "title": "在 Windows 上，在 postmaster 启动期间更早安装崩溃转储处理程序", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "c12521871ee42f95a2656d1373675b898dea16c9941cedccd5064d91b721be43", "section_path": ["变更"], "commit_groups": [["1c065901e", "8c92e66f1", "b2df91f2f", "cbfffee41", "d6387e27e", "e17b38db6"]], "identity_text": "On Windows, install the crash dump handler earlier in postmaster startup (Takayuki Tsunakawa) This may allow collection of a core dump for some early-startup failures that did not produce a dump before.", "commit_aliases": ["1c065901e", "8c92e66f1", "b2df91f2f", "cbfffee41", "d6387e27e", "e17b38db6"], "source_commits": ["d6387e27e"], "source_entry_id": "10.2/changes/061", "db_id": "001d2b44e15d4d920614bd624a7b8300", "patch_ids": ["af67a83552747908200380e14942b6b6"], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823", "relations": [{"rule": 2, "type": "equivalent", "target": "0f385e3a2a82eed547dcc4fabbcf8d25", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}}, {"rule": 2, "type": "equivalent", "target": "65514a44c9c68979d1f15a1eba134f81", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}}, {"rule": 2, "type": "equivalent", "target": "adff4c7ba3dce256d567d3d96ba5193a", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}}, {"rule": 2, "type": "equivalent", "target": "b52e37a6f1f6b19e88494b484af71ed9", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "adff4c7ba3dce256d567d3d96ba5193a", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}, "url": "/docs/compare/?release=9.6.7#9.6.7-e11937edc11472ae", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "b52e37a6f1f6b19e88494b484af71ed9", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}, "url": "/docs/compare/?release=9.5.11#9.5.11-e11937edc11472ae", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "65514a44c9c68979d1f15a1eba134f81", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}, "url": "/docs/compare/?release=9.4.16#9.4.16-e11937edc11472ae", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "0f385e3a2a82eed547dcc4fabbcf8d25", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "在 Windows 上，在 postmaster 启动更早阶段安装崩溃转储处理器", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "9d690b43ddeaf0923b8a4df4179413defe61d92e6f3553f0a0d216ff5bb49823"}, "url": "/docs/compare/?release=9.3.21#9.3.21-e11937edc11472ae", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-29606fd5ce0529c6", "cves": [], "html": "<p>在 Windows 上，避免 postmaster 启动的极早阶段输出消息时发生与编码转换有关的崩溃（Takayuki Tsunakawa）</p>", "text": "在 Windows 上，避免 postmaster 启动的极早阶段输出消息时发生与编码转换有关的崩溃（Takayuki Tsunakawa）", "title": "在 Windows 上，避免 postmaster 启动的极早阶段输出消息时发生与编码转换有关的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "e4489d24ff9a0cc8216bfa531311d602a4f5c24d553bd6860d4a62d44c854fcb", "section_path": ["变更"], "commit_groups": [["19cf9e96a", "30e99efe8", "d74db7a35", "dcbec53f4", "e02571b73", "fd5da32fc"]], "identity_text": "On Windows, avoid encoding-conversion-related crashes when emitting messages very early in postmaster startup (Takayuki Tsunakawa)", "commit_aliases": ["19cf9e96a", "30e99efe8", "d74db7a35", "dcbec53f4", "e02571b73", "fd5da32fc"], "source_commits": ["dcbec53f4"], "source_entry_id": "10.2/changes/062", "db_id": "2649af25929b0e8b46307c46840fa986", "patch_ids": ["2e99966e7557d679989c5dc86a3f76ab"], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89", "relations": [{"rule": 2, "type": "equivalent", "target": "3acbfa7fb5bd1041b24a68cd293fd1fe", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}}, {"rule": 2, "type": "equivalent", "target": "b8c7d687fe34c827987df0ddbfd57bfc", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}}, {"rule": 2, "type": "equivalent", "target": "f1804d79b68ca97f970ea754ca5a5e38", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}}, {"rule": 2, "type": "equivalent", "target": "f7f1ccca62f5a4c6b703f051f441b902", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}}], "version": "10.2", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b8c7d687fe34c827987df0ddbfd57bfc", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}, "url": "/docs/compare/?release=9.6.7#9.6.7-3f30c1aaf733e938", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "3acbfa7fb5bd1041b24a68cd293fd1fe", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}, "url": "/docs/compare/?release=9.5.11#9.5.11-3f30c1aaf733e938", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "f7f1ccca62f5a4c6b703f051f441b902", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}, "url": "/docs/compare/?release=9.4.16#9.4.16-3f30c1aaf733e938", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "f1804d79b68ca97f970ea754ca5a5e38", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "在 Windows 上，避免 postmaster 启动极早期发出消息时与编码转换相关的崩溃", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "190592ac5ae8f15ffceec4270edb7e145088448fa4d1c40af56ebf90d5745e89"}, "url": "/docs/compare/?release=9.3.21#9.3.21-3f30c1aaf733e938", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-91d281520dbaf037", "cves": [], "html": "<p>将现有 Motorola 68K 自旋锁代码用于 OpenBSD 和 NetBSD（David Carlier）</p>", "text": "将现有 Motorola 68K 自旋锁代码用于 OpenBSD 和 NetBSD（David Carlier）", "title": "将现有 Motorola 68K 自旋锁代码用于 OpenBSD 和 NetBSD", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "dd807588b32c8188082425dc8a66033f9fa6dbb6747afab99a527ce9658cf520", "section_path": ["变更"], "commit_groups": [["1056dd0e9", "13f2bdb63", "2cfafabe6", "84669c9b0", "ae772bbf9", "fa9a69d3d"]], "identity_text": "Use our existing Motorola 68K spinlock code on OpenBSD as well as NetBSD (David Carlier)", "commit_aliases": ["1056dd0e9", "13f2bdb63", "2cfafabe6", "84669c9b0", "ae772bbf9", "fa9a69d3d"], "source_commits": ["ae772bbf9"], "source_entry_id": "10.2/changes/063", "db_id": "dae1c877f244be94962949c6c6134b4e", "patch_ids": ["674102c8131908308a43aadb7ad8adff"], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200", "relations": [{"rule": 2, "type": "equivalent", "target": "2aaebb6e760e502605973f17c8ba4806", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}}, {"rule": 2, "type": "equivalent", "target": "47c8164f89a81b8d4eb4b24ddf579ad5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}}, {"rule": 2, "type": "equivalent", "target": "9b9ca2ad753ce490361c99a2856541f1", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}}, {"rule": 2, "type": "equivalent", "target": "caaff26961c06d094ce0f189421e2ec3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "2aaebb6e760e502605973f17c8ba4806", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}, "url": "/docs/compare/?release=9.6.7#9.6.7-d01b38f4513b7edd", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "9b9ca2ad753ce490361c99a2856541f1", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}, "url": "/docs/compare/?release=9.5.11#9.5.11-d01b38f4513b7edd", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "caaff26961c06d094ce0f189421e2ec3", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "在 OpenBSD 上也使用现有的 Motorola 68K 自旋锁代码，与 NetBSD 一样", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}, "url": "/docs/compare/?release=9.4.16#9.4.16-b01cca277aa11b90", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "47c8164f89a81b8d4eb4b24ddf579ad5", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "把我们现有的 Motorola 68K 自旋锁代码也用于 OpenBSD 而不只是 NetBSD", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "c20caac556ee970db5ae07ee8c0a7b8691e4e47a807be85bc948c5c9c7997200"}, "url": "/docs/compare/?release=9.3.21#9.3.21-d01b38f4513b7edd", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-351bcb54b8105d69", "cves": [], "html": "<p>增加对 Motorola 88K 上自旋锁的支持（David Carlier）</p>", "text": "增加对 Motorola 88K 上自旋锁的支持（David Carlier）", "title": "增加对 Motorola 88K 上自旋锁的支持", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "062bae6ffe6b469e24602d99eedf7d9fb86597aeefd63a6f7650c3a81adcd03f", "section_path": ["变更"], "commit_groups": [["0245c75f4", "1ecf7eeb8", "516cea4bb", "8bd8b4b77", "940bafa75", "f3bd00c01"]], "identity_text": "Add support for spinlocks on Motorola 88K (David Carlier)", "commit_aliases": ["0245c75f4", "1ecf7eeb8", "516cea4bb", "8bd8b4b77", "940bafa75", "f3bd00c01"], "source_commits": ["1ecf7eeb8"], "source_entry_id": "10.2/changes/064", "db_id": "592b0e3550c45d12fa249c7f3a184a35", "patch_ids": ["2e3b013e73ce236e2657310492425fa3"], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a", "relations": [{"rule": 2, "type": "equivalent", "target": "0cd70096e5dd4b175a9d088a39c8b3b3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}}, {"rule": 2, "type": "equivalent", "target": "8e5a1db0a07f57f25b8c7ad53e78bfb3", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}}, {"rule": 2, "type": "equivalent", "target": "bfa9a28cc40a79a97ae78a5019724377", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}}, {"rule": 2, "type": "equivalent", "target": "cc385b4c4d8fce475f44782ab00544e5", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "cc385b4c4d8fce475f44782ab00544e5", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "为 Motorola 88K 添加自旋锁支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}, "url": "/docs/compare/?release=9.6.7#9.6.7-0440d449c8227e15", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "8e5a1db0a07f57f25b8c7ad53e78bfb3", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "为 Motorola 88K 添加自旋锁支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}, "url": "/docs/compare/?release=9.5.11#9.5.11-0440d449c8227e15", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "0cd70096e5dd4b175a9d088a39c8b3b3", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "新增对 Motorola 88K 自旋锁的支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}, "url": "/docs/compare/?release=9.4.16#9.4.16-b124e3c286a80d8b", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "bfa9a28cc40a79a97ae78a5019724377", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "为 Motorola 88K 添加自旋锁支持", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "5f134771cb25ac5515e65273a619914280b19de080ffe2ae8d9daae52a9aff0a"}, "url": "/docs/compare/?release=9.3.21#9.3.21-0440d449c8227e15", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}, {"id": "10.2-5afbe12bf27bc0d9", "cves": [], "html": "<p>将时区数据文件更新到 <span>tzdata</span> 2018c 版，以反映巴西、圣多美和普林西比的夏令时法规变更，并修正玻利维亚、日本和南苏丹的历史数据。已移除 <code>US/Pacific-New</code> 时区（它本来就只是 <code>America/Los_Angeles</code> 的别名）。</p>", "text": "将时区数据文件更新到 tzdata 2018c 版，以反映巴西、圣多美和普林西比的夏令时法规变更，并修正玻利维亚、日本和南苏丹的历史数据。已移除 US/Pacific-New 时区（它本来就只是 America/Los_Angeles 的别名）。", "title": "将时区数据文件更新到 tzdata 2018c 版，以反映巴西、圣多美和普林西比的夏令时法规变更，并修正玻利维亚、日本和南苏丹的历史数据。已移除 US/Pacific-New 时区（它本来就只是 America/Los_Angeles 的别名）。", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/10.2/#id-1.11.6.26.5", "source_hash": "af0d6cae0e22854412799dfe2d6dd143d2806daad6e743423ca21444db1e142f", "section_path": ["变更"], "commit_groups": [["2d71b2700", "41fc04ff9", "462402be8", "b00e7555e", "e5e2cc6f8", "fa86a32f9"]], "identity_text": "Update time zone data files to tzdata release 2018c for DST law changes in Brazil, Sao Tome and Principe, plus historical corrections for Bolivia, Japan, and South Sudan. The US/Pacific-New zone has been removed (it was only an alias for America/Los_Angeles anyway).", "commit_aliases": ["2d71b2700", "41fc04ff9", "462402be8", "b00e7555e", "e5e2cc6f8", "fa86a32f9"], "source_commits": ["2d71b2700"], "source_entry_id": "10.2/changes/065", "db_id": "96a6cd7de5daa3706770e0012b49d3e4", "patch_ids": ["8c852fb708e5bcc771c9fec6d6bc3815"], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9", "relations": [{"rule": 2, "type": "equivalent", "target": "44697021345d02256c38845c2989b023", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}}, {"rule": 2, "type": "equivalent", "target": "64f0bacd61bdbcb4e7b5df04e7613b9e", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}}, {"rule": 2, "type": "equivalent", "target": "685247e6871674bcf06f3eb8ac95fc7f", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}}, {"rule": 2, "type": "equivalent", "target": "f9d5a9c145d7ccd1631d90c6f64f72da", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}}], "version": "10.2", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "64f0bacd61bdbcb4e7b5df04e7613b9e", "kind": "equivalent", "version": "9.6.7", "label": "9.6.7", "title": "更新时区数据文件到 tzdata 版本 2018c，涉及巴西以及圣多美和普林西比的夏令时法规变更，加上玻利维亚、日本和南苏丹的历史修正。US/Pacific-New 时区已被移除（它本来只是 America/Los_Angeles 的别名）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}, "url": "/docs/compare/?release=9.6.7#9.6.7-9e69976827ae2bed", "source_url": "/docs/release/9.6.7/#id-1.11.6.22.5"}, {"db_id": "44697021345d02256c38845c2989b023", "kind": "equivalent", "version": "9.5.11", "label": "9.5.11", "title": "更新时区数据文件到 tzdata 版本 2018c，涉及巴西以及圣多美和普林西比的夏令时法规变更，加上玻利维亚、日本和南苏丹的历史修正。US/Pacific-New 时区已被移除（它本来只是 America/Los_Angeles 的别名）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}, "url": "/docs/compare/?release=9.5.11#9.5.11-9e69976827ae2bed", "source_url": "/docs/release/9.5.11/#id-1.11.6.19.5"}, {"db_id": "685247e6871674bcf06f3eb8ac95fc7f", "kind": "equivalent", "version": "9.4.16", "label": "9.4.16", "title": "将时区数据文件更新到tzdata发行版 2018c，以反映巴西、圣多美和普林西比的夏令时法规变更，以及玻利维亚、日本和南苏丹的历史修正。US/Pacific-New时区已被移除（它本来就只是America/Los_Angeles的别名）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}, "url": "/docs/compare/?release=9.4.16#9.4.16-07b3b80c1a586529", "source_url": "/docs/release/9.4.16/#id-1.11.6.15.5"}, {"db_id": "f9d5a9c145d7ccd1631d90c6f64f72da", "kind": "equivalent", "version": "9.3.21", "label": "9.3.21", "title": "更新时区数据文件到 tzdata 版本 2018c，涉及巴西以及圣多美和普林西比的夏令时法规变更，加上玻利维亚、日本和南苏丹的历史修正。US/Pacific-New 时区已被移除（它本来只是 America/Los_Angeles 的别名）。", "evidence": {"same_day": true, "patch_ids": [], "statement_hash": "a9794a54502ba2eddd355ac36658530cbf5c51ebaf339249b1dbb9b3fe754dd9"}, "url": "/docs/compare/?release=9.3.21#9.3.21-9e69976827ae2bed", "source_url": "/docs/release/9.3.21/#id-1.11.6.9.5"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 65}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 33}, {"key": "security", "label": "安全相关", "count": 2}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 30}], "total": 65, "release_count": 1, "cross_major": false, "cve_count": 2, "cves": [{"id": "CVE-2018-1053", "url": "https://www.postgresql.org/support/security/CVE-2018-1053/", "fixed": {"10": "10.2", "9.3": "9.3.21", "9.4": "9.4.16", "9.5": "9.5.11", "9.6": "9.6.7"}, "score": 6.7, "title": "确保 pg_upgrade 创建的所有临时文件都不会允许所有用户读取", "vector": "AV:L/AC:H/PR:L/UI:R/S:U/C:H/I:H/A:H", "affected": {"10": "10", "9.3": "9.3", "9.4": "9.4", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"10": "2018-02-08", "9.3": "2018-02-08", "9.4": "2018-02-08", "9.5": "2018-02-08", "9.6": "2018-02-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2018-02-08", "fixed_version": "10.2"}, {"id": "CVE-2018-1052", "url": "https://www.postgresql.org/support/security/CVE-2018-1052/", "fixed": {"10": "10.2"}, "score": 6.5, "title": "修复对包含多个表达式的分区键的处理", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N", "affected": {"10": "10"}, "component": "core server", "published": {"10": "2018-02-08"}, "introduced": {}, "cvss_version": "3.0", "description_en": "", "first_published": "2018-02-08", "fixed_version": "10.2"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 65, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}