{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2020-11-12", "build": "13.1", "major": "13", "minor": 1, "manual": "13", "status": "stable", "doc_git": "", "version": "13.1", "eol_date": "2025-11-13", "date_text": "2020-11-12", "supported": false, "manual_url": "/docs/13/release-13-1.html", "source_url": "/docs/release/13.1/", "entry_count": 49, "placeholder": false, "content_hash": "936bd11af40024c64f514899165fe18414f80a8d49504265870defa167ab842e", "manual_build": "13.23", "source_as_of": "", "changes_count": 49, "doc_loaded_at": "2026-09-26T02:56:40.428744", "migration_html": "<p>对于运行 13.X 的用户，不需要执行导出/恢复。</p>", "compatibility_count": 0, "label": "13.1", "status_label": "历史版本", "eol": "2025-11-13", "age_days": 2148, "support_days": -321}, "groups": [{"date": "2020-11-12", "build": "13.1", "major": "13", "minor": 1, "manual": "13", "status": "stable", "doc_git": "", "version": "13.1", "eol_date": "2025-11-13", "date_text": "2020-11-12", "supported": false, "manual_url": "/docs/13/release-13-1.html", "source_url": "/docs/release/13.1/", "entry_count": 49, "placeholder": false, "content_hash": "936bd11af40024c64f514899165fe18414f80a8d49504265870defa167ab842e", "manual_build": "13.23", "source_as_of": "", "changes_count": 49, "doc_loaded_at": "2026-09-26T02:56:40.428744", "migration_html": "<p>对于运行 13.X 的用户，不需要执行导出/恢复。</p>", "compatibility_count": 0, "label": "13.1", "status_label": "历史版本", "eol": "2025-11-13", "age_days": 2148, "support_days": -321, "entries": [{"id": "13.1-72b4bd56189200a8", "cves": ["CVE-2020-25695"], "html": "<p>禁止在索引表达式和物化视图查询中执行 <code>DECLARE CURSOR ... WITH HOLD</code> 以及触发延迟触发器（Noah Misch）<a href=\"https://postgr.es/c/c90c84b3f\">§</a></p>\n<p>这实际上是<span>“<span>安全受限操作</span>”</span>沙箱机制中的一个漏洞。有权创建非临时 SQL 对象的攻击者可以利用此漏洞，以超级用户身份执行任意 SQL 代码。</p>\n<p><span>PostgreSQL</span> 项目感谢 Etienne Stalmans 报告此问题。（CVE-2020-25695）</p>", "text": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器（Noah Misch）§ 这实际上是“安全受限操作”沙箱机制中的一个漏洞。有权创建非临时 SQL 对象的攻击者可以利用此漏洞，以超级用户身份执行任意 SQL 代码。 PostgreSQL 项目感谢 Etienne Stalmans 报告此问题。（CVE-2020-25695）", "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "commits": ["c90c84b3f"], "section": "变更", "category": "security", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "b2c664caffc6f6b4309f84a0f862d042dd0304c3decbe6f648f367300a767d0f", "section_path": ["变更"], "commit_groups": [["0c3185e96", "43ebfea5a", "ac8f6243c", "aefc625de", "c90c84b3f", "f97ecea1e", "ff3de4c21"]], "identity_text": "Block DECLARE CURSOR ... WITH HOLD and firing of deferred triggers within index expressions and materialized view queries (Noah Misch) This is essentially a leak in the security restricted operation sandbox mechanism. An attacker having permission to create non-temporary SQL objects could parlay this leak to execute arbitrary SQL code as a superuser. The PostgreSQL Project thanks Etienne Stalmans for reporting this problem. (CVE-2020-25695)", "commit_aliases": ["0c3185e96", "43ebfea5a", "ac8f6243c", "aefc625de", "c90c84b3f", "f97ecea1e", "ff3de4c21"], "source_commits": ["c90c84b3f"], "source_entry_id": "13.1/changes/001", "db_id": "d25e683f09292446d7a493aa4076cf0a", "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24", "relations": [{"rule": 2, "type": "equivalent", "target": "27b2bc4c97af3cc7f3e3232b22c140cb", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}}, {"rule": 2, "type": "equivalent", "target": "32a38be39164587561246274bce57c11", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}}, {"rule": 2, "type": "equivalent", "target": "754d0fa35c630453e7e8be4195e0d8a5", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}}, {"rule": 2, "type": "equivalent", "target": "b80a99246721d0a6d0290a38f05221c7", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}}, {"rule": 2, "type": "equivalent", "target": "c1e18d9b246a26244718162c48be2564", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}}], "version": "13.1", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "754d0fa35c630453e7e8be4195e0d8a5", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}, "url": "/docs/compare/?release=12.5#12.5-58ffc2453b836b7c", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "27b2bc4c97af3cc7f3e3232b22c140cb", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}, "url": "/docs/compare/?release=11.10#11.10-30b9a257c6e59de0", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "c1e18d9b246a26244718162c48be2564", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}, "url": "/docs/compare/?release=10.15#10.15-30b9a257c6e59de0", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "32a38be39164587561246274bce57c11", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}, "url": "/docs/compare/?release=9.6.20#9.6.20-30b9a257c6e59de0", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "b80a99246721d0a6d0290a38f05221c7", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "evidence": {"same_day": true, "patch_ids": ["e898d0dfc6b33d9b63abd3fb0e8b1a11"], "statement_hash": "2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"}, "url": "/docs/compare/?release=9.5.24#9.5.24-30b9a257c6e59de0", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-1006a71ccc1ec016", "cves": ["CVE-2020-25694"], "html": "<p>修复 <span>pg_dump</span>、<span>pg_restore</span>、<span>clusterdb</span>、<span>reindexdb</span> 和 <span>vacuumdb</span> 对复杂连接字符串参数的使用（Tom Lane）<a href=\"https://postgr.es/c/cb8885ac4\">§</a> <a href=\"https://postgr.es/c/1814f915b\">§</a></p>\n<p><span>pg_dump</span> 和 <span>pg_restore</span> 的 <code>-d</code> 参数，以及其他上述程序的 <code>--maintenance-db</code> 参数，可以是包含多个连接参数的<span>“<span>连接字符串</span>”</span>，而不仅仅是数据库名称。当这些程序需要发起额外连接时，例如进行并行处理或处理多个数据库时，连接字符串会被遗忘，额外连接只会使用基本连接参数（数据库名称、主机、端口和用户名）。如果连接字符串包含其他必要信息，例如非默认的 SSL 或 GSS 参数，这可能导致连接失败。更糟的是，连接可能成功建立，却未按预期加密，或者可能遭受本应由指定连接参数防止的中间人攻击。（CVE-2020-25694）</p>", "text": "修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用（Tom Lane）§ § pg_dump 和 pg_restore 的 -d 参数，以及其他上述程序的 --maintenance-db 参数，可以是包含多个连接参数的“连接字符串”，而不仅仅是数据库名称。当这些程序需要发起额外连接时，例如进行并行处理或处理多个数据库时，连接字符串会被遗忘，额外连接只会使用基本连接参数（数据库名称、主机、端口和用户名）。如果连接字符串包含其他必要信息，例如非默认的 SSL 或 GSS 参数，这可能导致连接失败。更糟的是，连接可能成功建立，却未按预期加密，或者可能遭受本应由指定连接参数防止的中间人攻击。（CVE-2020-25694）", "title": "修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用", "commits": ["1814f915b", "cb8885ac4"], "section": "变更", "category": "security", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "82597eafb5f4d905bbbc7fd3959b35370ff78c4d1dd038c68adbd3cbd60f18b1", "section_path": ["变更"], "commit_groups": [["1738a61c8", "1888ff8d0", "56b46d3a1", "7c154f2fd", "a45bc8a4f", "cb8885ac4", "fb93f784f"], ["1814f915b", "5a9f99bed", "5c78f7977", "68f236993", "8e5793ab6", "c6d0b9b16", "da129a04a"]], "identity_text": "Fix usage of complex connection-string parameters in pg_dump, pg_restore, clusterdb, reindexdb, and vacuumdb (Tom Lane) The -d parameter of pg_dump and pg_restore, or the --maintenance-db parameter of the other programs mentioned, can be a connection string containing multiple connection parameters rather than just a database name. In cases where these programs need to initiate additional connections, such as parallel processing or processing of multiple databases, the connection string was forgotten and just the basic connection parameters (database name, host, port, and username) were used for the additional connections. This could lead to connection failures if the connection string included any other essential information, such as non-default SSL or GSS parameters. Worse, the connection might succeed but not be encrypted as intended, or be vulnerable to man-in-the-middle attacks that the intended connection parameters would have prevented. (CVE-2020-25694)", "commit_aliases": ["1738a61c8", "1814f915b", "1888ff8d0", "56b46d3a1", "5a9f99bed", "5c78f7977", "68f236993", "7c154f2fd", "8e5793ab6", "a45bc8a4f", "c6d0b9b16", "cb8885ac4", "da129a04a", "fb93f784f"], "source_commits": ["1814f915b", "cb8885ac4"], "source_entry_id": "13.1/changes/002", "db_id": "90054100695610cba1c4a6aabb36f9c6", "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa", "relations": [{"rule": 2, "type": "equivalent", "target": "6cffdf59a39c1e1204d363f316c25012", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}}, {"rule": 2, "type": "equivalent", "target": "9bb37934f19a023764ee700751964c41", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}}, {"rule": 2, "type": "equivalent", "target": "bd180bdbb3017b36871742d1753f820f", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}}, {"rule": 2, "type": "equivalent", "target": "c5c358c8bfcf2af40a3f744b066dfe37", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}}, {"rule": 2, "type": "equivalent", "target": "f99483c0194bc236cd796fb70849abb1", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}}], "version": "13.1", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "6cffdf59a39c1e1204d363f316c25012", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}, "url": "/docs/compare/?release=12.5#12.5-66ca83b99f74f9b0", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "c5c358c8bfcf2af40a3f744b066dfe37", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}, "url": "/docs/compare/?release=11.10#11.10-f5695ef1c79fd91e", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "f99483c0194bc236cd796fb70849abb1", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}, "url": "/docs/compare/?release=10.15#10.15-f5695ef1c79fd91e", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "9bb37934f19a023764ee700751964c41", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "修复 pg_dump、pg_restore、 clusterdb、reindexdb 和 vacuumdb 中复杂连接字符串参数的用法", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}, "url": "/docs/compare/?release=9.6.20#9.6.20-be5bff9c020a9205", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "bd180bdbb3017b36871742d1753f820f", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复 pg_dump、pg_restore、 clusterdb、reindexdb 和 vacuumdb 中复杂连接字符串参数的用法", "evidence": {"same_day": true, "patch_ids": ["6bb19578ad8feb3e68071169a6f567c0", "fa0aac08719ba7654ad9ab2529d63d8c"], "statement_hash": "13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"}, "url": "/docs/compare/?release=9.5.24#9.5.24-be5bff9c020a9205", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-f1badba1aaec4ac5", "cves": ["CVE-2020-25694"], "html": "<p>当 <span>psql</span> 的 <code>\\connect</code> 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数（Tom Lane）<a href=\"https://postgr.es/c/2e4af4110\">§</a></p>\n<p>这可以避免因遗漏相关参数（例如非默认的 SSL 或 GSS 选项）而导致重新连接失败。更糟的情况是，重新连接可能成功，却未按预期加密，或者可能遭受本应由指定连接参数防止的中间人攻击。这与刚才提到的 <span>pg_dump</span> 等程序的问题基本相同，只是 <span>psql</span> 的行为更复杂，因为用户可能有意覆盖某些连接参数。（CVE-2020-25694）</p>", "text": "当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数（Tom Lane）§ 这可以避免因遗漏相关参数（例如非默认的 SSL 或 GSS 选项）而导致重新连接失败。更糟的情况是，重新连接可能成功，却未按预期加密，或者可能遭受本应由指定连接参数防止的中间人攻击。这与刚才提到的 pg_dump 等程序的问题基本相同，只是 psql 的行为更复杂，因为用户可能有意覆盖某些连接参数。（CVE-2020-25694）", "title": "当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数", "commits": ["2e4af4110"], "section": "变更", "category": "security", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "5cb2851939fc7aaa2d8240144dc9ed134c890628bd03fe1284d4d70a67cfe2ab", "section_path": ["变更"], "commit_groups": [["20be76d5c", "2e4af4110", "6997da09a", "8175da6e7", "85c54287a", "870a23230", "f656517ec"]], "identity_text": "When psql's \\connect command re-uses connection parameters, ensure that all non-overridden parameters from a previous connection string are re-used (Tom Lane) This avoids cases where reconnection might fail due to omission of relevant parameters, such as non-default SSL or GSS options. Worse, the reconnection might succeed but not be encrypted as intended, or be vulnerable to man-in-the-middle attacks that the intended connection parameters would have prevented. This is largely the same problem as just cited for pg_dump et al, although psql's behavior is more complex since the user may intentionally override some connection parameters. (CVE-2020-25694)", "commit_aliases": ["20be76d5c", "2e4af4110", "6997da09a", "8175da6e7", "85c54287a", "870a23230", "f656517ec"], "source_commits": ["2e4af4110"], "source_entry_id": "13.1/changes/003", "db_id": "33dcaa91db9a340ad489a4dab2bf38de", "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af", "relations": [{"rule": 2, "type": "equivalent", "target": "048a4d116a491d8b2e54c00d82075af2", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}}, {"rule": 2, "type": "equivalent", "target": "09d652b358d89152448ded204db7f698", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}}, {"rule": 2, "type": "equivalent", "target": "504ed64a289c20845de663a4c9b24733", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}}, {"rule": 2, "type": "equivalent", "target": "9c07eaa4cc364eeece248d77060d68a6", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}}, {"rule": 2, "type": "equivalent", "target": "eb6bb7847df32de22ae4279f01bac757", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}}], "version": "13.1", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "504ed64a289c20845de663a4c9b24733", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}, "url": "/docs/compare/?release=12.5#12.5-3c25610dd990145e", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "048a4d116a491d8b2e54c00d82075af2", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}, "url": "/docs/compare/?release=11.10#11.10-58b05f4e0090a9b5", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "9c07eaa4cc364eeece248d77060d68a6", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}, "url": "/docs/compare/?release=10.15#10.15-58b05f4e0090a9b5", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "09d652b358d89152448ded204db7f698", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "当 psql 的 \\connect 命令复用连接参数时，确保先前连接字符串中所有未被覆盖的参数都被复用", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}, "url": "/docs/compare/?release=9.6.20#9.6.20-1512bab65015e57b", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "eb6bb7847df32de22ae4279f01bac757", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "当 psql 的 \\connect 命令复用连接参数时，确保先前连接字符串中所有未被覆盖的参数都被复用", "evidence": {"same_day": true, "patch_ids": ["f12917222401547fc494ff9ed23244f8"], "statement_hash": "c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"}, "url": "/docs/compare/?release=9.5.24#9.5.24-1512bab65015e57b", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-9070105c8a130c54", "cves": ["CVE-2020-25696"], "html": "<p>防止 <span>psql</span> 的 <code>\\gset</code> 命令修改具有特殊处理方式的变量（Noah Misch）<a href=\"https://postgr.es/c/67029845b\">§</a></p>\n<p>不带前缀的 <code>\\gset</code> 会覆盖服务器要求其设置的任何变量。因此，被攻陷的服务器可以设置 <code>PROMPT1</code> 等受到特殊处理的变量，从而能够在用户会话中执行任意 shell 代码。</p>\n<p><span>PostgreSQL</span> 项目感谢 Nick Cleaton 报告此问题。（CVE-2020-25696）</p>", "text": "防止 psql 的 \\gset 命令修改具有特殊处理方式的变量（Noah Misch）§ 不带前缀的 \\gset 会覆盖服务器要求其设置的任何变量。因此，被攻陷的服务器可以设置 PROMPT1 等受到特殊处理的变量，从而能够在用户会话中执行任意 shell 代码。 PostgreSQL 项目感谢 Nick Cleaton 报告此问题。（CVE-2020-25696）", "title": "防止 psql 的 \\gset 命令修改具有特殊处理方式的变量", "commits": ["67029845b"], "section": "变更", "category": "security", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "73d527ca65cc6ffafc212854e1d0371dad353cd0470f5e080b484c7f654c425b", "section_path": ["变更"], "commit_groups": [["098fb0079", "12fd81cb7", "3855e5b47", "67029845b", "7b356c78f", "a498db87b", "a54dfbee1"]], "identity_text": "Prevent psql's \\gset command from modifying specially-treated variables (Noah Misch) \\gset without a prefix would overwrite whatever variables the server told it to. Thus, a compromised server could set specially-treated variables such as PROMPT1, giving the ability to execute arbitrary shell code in the user's session. The PostgreSQL Project thanks Nick Cleaton for reporting this problem. (CVE-2020-25696)", "commit_aliases": ["098fb0079", "12fd81cb7", "3855e5b47", "67029845b", "7b356c78f", "a498db87b", "a54dfbee1"], "source_commits": ["67029845b"], "source_entry_id": "13.1/changes/004", "db_id": "ed15ca1feec24d6238cd80fae70f0817", "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576", "relations": [{"rule": 2, "type": "equivalent", "target": "048000d3411816dd2fc965b0cd624522", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}}, {"rule": 2, "type": "equivalent", "target": "370feb049d035ea22d0a1524d0be1028", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}}, {"rule": 2, "type": "equivalent", "target": "435fccf471fec61c697ec3f4e10aac11", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}}, {"rule": 2, "type": "equivalent", "target": "5a10d3cd862859a12f76a3057dc3036d", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}}, {"rule": 2, "type": "equivalent", "target": "684e218336a5bfa28d8f2dfa9d6632e6", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}}], "version": "13.1", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "684e218336a5bfa28d8f2dfa9d6632e6", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "防止 psql 的 \\gset 命令修改具有特殊处理方式的变量", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}, "url": "/docs/compare/?release=12.5#12.5-729d850c2da92e5e", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "5a10d3cd862859a12f76a3057dc3036d", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "防止 psql 的 \\gset 命令修改具有特殊处理方式的变量", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}, "url": "/docs/compare/?release=11.10#11.10-05f33833ef6a810b", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "048000d3411816dd2fc965b0cd624522", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "防止 psql 的 \\gset 命令修改具有特殊处理方式的变量", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}, "url": "/docs/compare/?release=10.15#10.15-05f33833ef6a810b", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "370feb049d035ea22d0a1524d0be1028", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "防止 psql 的 \\gset 命令修改特殊处理的变量", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}, "url": "/docs/compare/?release=9.6.20#9.6.20-1f21dcb4d2e98063", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "435fccf471fec61c697ec3f4e10aac11", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "防止 psql 的 \\gset 命令修改特殊处理的变量", "evidence": {"same_day": true, "patch_ids": ["e7d80384f9cb93cf2c18f344e115c1c5"], "statement_hash": "5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"}, "url": "/docs/compare/?release=9.5.24#9.5.24-1f21dcb4d2e98063", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-a2b4c620ddcb9507", "cves": [], "html": "<p>修复对复制协议的意外破坏（Álvaro Herrera）<a href=\"https://postgr.es/c/72e43fc31\">§</a> <a href=\"https://postgr.es/c/9f783aea6\">§</a></p>\n<p>WAL 发送进程会为 <code>START_REPLICATION</code> 报告两个命令完成事件。这没有文档记录，而且显然并非有意为之，因此我们没有注意到 13.0 后期的一项修改移除了重复事件。然而，事实证明，WAL 接收进程在某些代码路径中需要这个额外事件。最实际的修复方式是将该额外事件规定为协议的一部分，并恢复生成它。</p>", "text": "修复对复制协议的意外破坏（Álvaro Herrera）§ § WAL 发送进程会为 START_REPLICATION 报告两个命令完成事件。这没有文档记录，而且显然并非有意为之，因此我们没有注意到 13.0 后期的一项修改移除了重复事件。然而，事实证明，WAL 接收进程在某些代码路径中需要这个额外事件。最实际的修复方式是将该额外事件规定为协议的一部分，并恢复生成它。", "title": "修复对复制协议的意外破坏", "commits": ["72e43fc31", "9f783aea6"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "83d57ccc1a1cf4f409a0a330cb1bbf16578102a39d1e6f7109b474545d1fb789", "section_path": ["变更"], "commit_groups": [["4e9821b6f", "72e43fc31"], ["7f4708818", "9f783aea6"]], "identity_text": "Fix unintended breakage of the replication protocol (Álvaro Herrera) A walsender reports two command-completion events for START_REPLICATION. This was undocumented and apparently unintentional; so we failed to notice that a late 13.0 change removed the duplicate event. However it turns out that walreceivers require the extra event in some code paths. The most practical fix is to decree that the extra event is part of the protocol and resume generating it.", "commit_aliases": ["4e9821b6f", "72e43fc31", "7f4708818", "9f783aea6"], "source_commits": ["72e43fc31", "9f783aea6"], "source_entry_id": "13.1/changes/005", "db_id": "5f1fab75f13ea2b53eef37ac55302623", "patch_ids": ["46d95b143639f4a2dc4e5b2c04bad243", "6d24b4c9f696cbeec61c654294430e4d"], "statement_hash": "bc8a920d81bad6efc165a546c3ff0d39bd4b240849e586f9a33b59c391b3c9f1", "relations": [], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.1-fdad27ed414f6e2a", "cves": [], "html": "<p>确保在检查点期间对 SLRU 目录正确执行 fsync（Thomas Munro）<a href=\"https://postgr.es/c/052014a20\">§</a></p>\n<p>这可以防止后续操作系统崩溃时可能发生的数据丢失。</p>", "text": "确保在检查点期间对 SLRU 目录正确执行 fsync（Thomas Munro）§ 这可以防止后续操作系统崩溃时可能发生的数据丢失。", "title": "确保在检查点期间对 SLRU 目录正确执行 fsync", "commits": ["052014a20"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "12dfc5e5a3996a0e1510b4ddaa08cffd700f6174a32341e04a3a8187d0cae44e", "section_path": ["变更"], "commit_groups": [["052014a20", "23d8b3577", "7664cc869", "aca74843e", "c5a5bd0bb", "d38e15979", "dd36d6b00"]], "identity_text": "Ensure that SLRU directories are properly fsync'd during checkpoints (Thomas Munro) This prevents possible data loss in a subsequent operating system crash.", "commit_aliases": ["052014a20", "23d8b3577", "7664cc869", "aca74843e", "c5a5bd0bb", "d38e15979", "dd36d6b00"], "source_commits": ["052014a20"], "source_entry_id": "13.1/changes/006", "db_id": "b06ef39e998c1dc910700de06c681e9a", "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7", "relations": [{"rule": 2, "type": "equivalent", "target": "4eccc1a2390eb87494a76e3a5985f5d3", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}}, {"rule": 2, "type": "equivalent", "target": "5be2e7c4790799ca4c539a2d54536a91", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}}, {"rule": 2, "type": "equivalent", "target": "80cc9ce2bd43fa57595f97e3853bcd2c", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}}, {"rule": 2, "type": "equivalent", "target": "aa4a15ce9bf437e318685c548b299a9b", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}}, {"rule": 2, "type": "equivalent", "target": "fb47558544b98f8abc71ea371925ccce", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "4eccc1a2390eb87494a76e3a5985f5d3", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "确保在检查点期间对 SLRU 目录正确执行 fsync", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}, "url": "/docs/compare/?release=12.5#12.5-3775a45a913e90e4", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "fb47558544b98f8abc71ea371925ccce", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "确保在检查点期间对 SLRU 目录正确执行 fsync", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}, "url": "/docs/compare/?release=11.10#11.10-ad98622e2349a742", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "5be2e7c4790799ca4c539a2d54536a91", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "确保在检查点期间对 SLRU 目录正确执行 fsync", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}, "url": "/docs/compare/?release=10.15#10.15-ad98622e2349a742", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "aa4a15ce9bf437e318685c548b299a9b", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "确保检查点期间正确 fsync SLRU 目录", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}, "url": "/docs/compare/?release=9.6.20#9.6.20-d68c2334c7420742", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "80cc9ce2bd43fa57595f97e3853bcd2c", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "确保检查点期间正确 fsync SLRU 目录", "evidence": {"same_day": true, "patch_ids": ["a2c4e9bfb6dc7d28acd67d5e9096d0d3"], "statement_hash": "fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"}, "url": "/docs/compare/?release=9.5.24#9.5.24-d68c2334c7420742", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-6a8c8bd73d0aa902", "cves": [], "html": "<p>修复对具有 <code>BYPASSRLS</code> 属性的用户执行 <code>ALTER ROLE</code> 的行为（Tom Lane，Stephen Frost）<a href=\"https://postgr.es/c/768dbef0d\">§</a></p>\n<p>只有超级用户才可以修改 <code>BYPASSRLS</code> 属性，但其他 <code>ALTER ROLE</code> 操作（例如修改密码）应该只需通过普通权限检查就可以执行。之前的代码错误地将对此类角色的所有修改都限制为只能由超级用户执行。</p>", "text": "修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为（Tom Lane，Stephen Frost）§ 只有超级用户才可以修改 BYPASSRLS 属性，但其他 ALTER ROLE 操作（例如修改密码）应该只需通过普通权限检查就可以执行。之前的代码错误地将对此类角色的所有修改都限制为只能由超级用户执行。", "title": "修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为", "commits": ["768dbef0d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "c25484ba3292c2a94042cb347acc4bade82a12706fe4a4a26dddee1c52f79649", "section_path": ["变更"], "commit_groups": [["04c4b495b", "136f87ea5", "501035a0a", "768dbef0d", "77df80cf6", "d907bd054", "df4405b78"]], "identity_text": "Fix ALTER ROLE for users with the BYPASSRLS attribute (Tom Lane, Stephen Frost) The BYPASSRLS attribute is only allowed to be changed by superusers, but other ALTER ROLE operations, such as password changes, should be allowed with only ordinary permission checks. The previous coding erroneously restricted all changes on such a role to superusers.", "commit_aliases": ["04c4b495b", "136f87ea5", "501035a0a", "768dbef0d", "77df80cf6", "d907bd054", "df4405b78"], "source_commits": ["768dbef0d"], "source_entry_id": "13.1/changes/007", "db_id": "06b53ae97a656f0644b54f91e35132a5", "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b", "relations": [{"rule": 2, "type": "equivalent", "target": "8af3f6b3b1924b7f80369eb22d67b422", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}}, {"rule": 2, "type": "equivalent", "target": "940ff717682ea460b74a4952e333f1ed", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}}, {"rule": 2, "type": "equivalent", "target": "98a5b51b9a41924b4e3b062a26969ef6", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}}, {"rule": 2, "type": "equivalent", "target": "a28441cf5f6775c071a4dad86f50a92e", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}}, {"rule": 2, "type": "equivalent", "target": "b24cf385ec511257e1ddab3e66318c0c", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a28441cf5f6775c071a4dad86f50a92e", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}, "url": "/docs/compare/?release=12.5#12.5-f0bc8a0333a4e23a", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "b24cf385ec511257e1ddab3e66318c0c", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}, "url": "/docs/compare/?release=11.10#11.10-5d13bdf0c7f3f783", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "98a5b51b9a41924b4e3b062a26969ef6", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}, "url": "/docs/compare/?release=10.15#10.15-5d13bdf0c7f3f783", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "940ff717682ea460b74a4952e333f1ed", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "修复对具有 BYPASSRLS 属性的用户的 ALTER ROLE", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}, "url": "/docs/compare/?release=9.6.20#9.6.20-893176c27ae69b2f", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "8af3f6b3b1924b7f80369eb22d67b422", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复对具有 BYPASSRLS 属性的用户的 ALTER ROLE", "evidence": {"same_day": true, "patch_ids": ["00d5c0db091c94703a53f07d4d0b3805"], "statement_hash": "da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"}, "url": "/docs/compare/?release=9.5.24#9.5.24-893176c27ae69b2f", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-21cf4de2705c5da7", "cves": [], "html": "<p>存在子表时，禁止 <code>ALTER TABLE ONLY ... DROP EXPRESSION</code>（Peter Eisentraut）<a href=\"https://postgr.es/c/539775981\">§</a></p>\n<p>当前实现无法正确处理这种情况，因此暂时将其禁止。</p>", "text": "存在子表时，禁止 ALTER TABLE ONLY ... DROP EXPRESSION（Peter Eisentraut）§ 当前实现无法正确处理这种情况，因此暂时将其禁止。", "title": "存在子表时，禁止 ALTER TABLE ONLY ... DROP EXPRESSION", "commits": ["539775981"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "f072d511268dcffe9a888b2aa22dc49a84f59dda4c34a0d6d4324ceac45262ce", "section_path": ["变更"], "commit_groups": [["539775981", "bf797a8d9"]], "identity_text": "Disallow ALTER TABLE ONLY ... DROP EXPRESSION when there are child tables (Peter Eisentraut) The current implementation cannot handle this case correctly, so just forbid it for now.", "commit_aliases": ["539775981", "bf797a8d9"], "source_commits": ["539775981"], "source_entry_id": "13.1/changes/008", "db_id": "82f5a774a3c40a9372807061c7faa8c6", "patch_ids": ["3c6a0d1fcaf1215d9365c23e1b2585c3"], "statement_hash": "173323363f259c1951824729f74e7ef886c44d3ee9cf15183818643645b350ec", "relations": [], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.1-c5abe79d94d21efe", "cves": [], "html": "<p>确保 <code>ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER</code> 不递归处理子表（Álvaro Herrera）<a href=\"https://postgr.es/c/5f6463a20\">§</a></p>\n<p>以前，<code>ONLY</code> 标志被忽略了。</p>", "text": "确保 ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER 不递归处理子表（Álvaro Herrera）§ 以前，ONLY 标志被忽略了。", "title": "确保 ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER 不递归处理子表", "commits": ["5f6463a20"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "5353b1e022eaff0d067c1cf284a939a569030d4b52797c4ff7066cb63e7914cc", "section_path": ["变更"], "commit_groups": [["0e6b6f8c7", "5f6463a20", "a795f6782", "bbb927b4d"]], "identity_text": "Ensure that ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER does not recurse to child tables (Álvaro Herrera) Previously the ONLY flag was ignored.", "commit_aliases": ["0e6b6f8c7", "5f6463a20", "a795f6782", "bbb927b4d"], "source_commits": ["5f6463a20"], "source_entry_id": "13.1/changes/009", "db_id": "bf73f5c2e8a4e1f58b85082ad644cebc", "patch_ids": ["1486e5d11149ea7f531f38421c96e4ff"], "statement_hash": "b56964d028fb509b948d0a9544dc895c0ade294a5bb1fe7004886f033aa8dbbb", "relations": [{"rule": 2, "type": "equivalent", "target": "0d4143e62367e577a2a5a494c6456a70", "evidence": {"same_day": true, "patch_ids": ["1486e5d11149ea7f531f38421c96e4ff"], "statement_hash": "b56964d028fb509b948d0a9544dc895c0ade294a5bb1fe7004886f033aa8dbbb"}}, {"rule": 2, "type": "equivalent", "target": "515d920db83984a2310b61b5b956940b", "evidence": {"same_day": true, "patch_ids": ["1486e5d11149ea7f531f38421c96e4ff"], "statement_hash": "b56964d028fb509b948d0a9544dc895c0ade294a5bb1fe7004886f033aa8dbbb"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "515d920db83984a2310b61b5b956940b", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "确保 ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER 不递归处理子表", "evidence": {"same_day": true, "patch_ids": ["1486e5d11149ea7f531f38421c96e4ff"], "statement_hash": "b56964d028fb509b948d0a9544dc895c0ade294a5bb1fe7004886f033aa8dbbb"}, "url": "/docs/compare/?release=12.5#12.5-fa55f3abcfa7ae19", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "0d4143e62367e577a2a5a494c6456a70", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "确保 ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER 不递归处理子表", "evidence": {"same_day": true, "patch_ids": ["1486e5d11149ea7f531f38421c96e4ff"], "statement_hash": "b56964d028fb509b948d0a9544dc895c0ade294a5bb1fe7004886f033aa8dbbb"}, "url": "/docs/compare/?release=11.10#11.10-dd58929a3ff96a33", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}]}, {"id": "13.1-658bba060786a9be", "cves": [], "html": "<p>允许对自引用视图成功执行 <code>LOCK TABLE</code>（Tom Lane）<a href=\"https://postgr.es/c/44b973b91\">§</a></p>\n<p>以前会抛出关于无限递归的错误，但似乎没有必要禁止这种情况。</p>", "text": "允许对自引用视图成功执行 LOCK TABLE（Tom Lane）§ 以前会抛出关于无限递归的错误，但似乎没有必要禁止这种情况。", "title": "允许对自引用视图成功执行 LOCK TABLE", "commits": ["44b973b91"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "f74ac57b942a360f8a80bd00cdf175a53ab21df7dcf3b8006da2bd7a1b467de7", "section_path": ["变更"], "commit_groups": [["0bdf1ef3d", "44b973b91", "5b7bfc397", "7dc18c619"]], "identity_text": "Allow LOCK TABLE to succeed on a self-referential view (Tom Lane) It previously threw an error complaining about infinite recursion, but there seems no need to disallow the case.", "commit_aliases": ["0bdf1ef3d", "44b973b91", "5b7bfc397", "7dc18c619"], "source_commits": ["44b973b91"], "source_entry_id": "13.1/changes/010", "db_id": "2d9a7d9cd258cf795bfe09ac728c2093", "patch_ids": ["e80a6d62a308549fca3dca43cf214e58"], "statement_hash": "c48c786d6aefa3b2ef2bde9f2098ebab17fa00b0da9d6978ef895b89fb823222", "relations": [{"rule": 2, "type": "equivalent", "target": "3935a2bfda3c217a89c73379e751c30f", "evidence": {"same_day": true, "patch_ids": ["e80a6d62a308549fca3dca43cf214e58"], "statement_hash": "c48c786d6aefa3b2ef2bde9f2098ebab17fa00b0da9d6978ef895b89fb823222"}}, {"rule": 2, "type": "equivalent", "target": "b18cca0fe5884749592bcb9c306e8ed8", "evidence": {"same_day": true, "patch_ids": ["e80a6d62a308549fca3dca43cf214e58"], "statement_hash": "c48c786d6aefa3b2ef2bde9f2098ebab17fa00b0da9d6978ef895b89fb823222"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b18cca0fe5884749592bcb9c306e8ed8", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "允许对自引用视图成功执行 LOCK TABLE", "evidence": {"same_day": true, "patch_ids": ["e80a6d62a308549fca3dca43cf214e58"], "statement_hash": "c48c786d6aefa3b2ef2bde9f2098ebab17fa00b0da9d6978ef895b89fb823222"}, "url": "/docs/compare/?release=12.5#12.5-5c8f797b238b95d5", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "3935a2bfda3c217a89c73379e751c30f", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "允许对自引用视图成功执行 LOCK TABLE", "evidence": {"same_day": true, "patch_ids": ["e80a6d62a308549fca3dca43cf214e58"], "statement_hash": "c48c786d6aefa3b2ef2bde9f2098ebab17fa00b0da9d6978ef895b89fb823222"}, "url": "/docs/compare/?release=11.10#11.10-643801686120db2e", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}]}, {"id": "13.1-98a14985b3433129", "cves": [], "html": "<p>在 <code>REINDEX CONCURRENTLY</code> 前后保留索引的统计信息（Michael Paquier，Fabrízio de Royes Mello）<a href=\"https://postgr.es/c/bb62df46b\">§</a></p>\n<p>非并发的索引重建一直会保留这些统计信息。</p>", "text": "在 REINDEX CONCURRENTLY 前后保留索引的统计信息（Michael Paquier，Fabrízio de Royes Mello）§ 非并发的索引重建一直会保留这些统计信息。", "title": "在 REINDEX CONCURRENTLY 前后保留索引的统计信息", "commits": ["bb62df46b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "3e8c3ded49639c62c91557a95e2031b281eb778b052a568722481da5f3e84fd3", "section_path": ["变更"], "commit_groups": [["41a033b50", "b17ff07aa", "bb62df46b"]], "identity_text": "Retain statistics about an index across REINDEX CONCURRENTLY (Michael Paquier, Fabrízio de Royes Mello) Non-concurrent reindexing has always preserved such statistics.", "commit_aliases": ["41a033b50", "b17ff07aa", "bb62df46b"], "source_commits": ["bb62df46b"], "source_entry_id": "13.1/changes/011", "db_id": "968d3cde895dc97b388757887ad30210", "patch_ids": ["4616682d99b4a9614c6f50c95b8f9808"], "statement_hash": "df824fc429752478a9fa50b60c52c5b43407e36003b5466d2f7642bb0dd5d8ab", "relations": [{"rule": 2, "type": "equivalent", "target": "6f499e8e479f0c4070ca4654bbffe8c5", "evidence": {"same_day": true, "patch_ids": ["4616682d99b4a9614c6f50c95b8f9808"], "statement_hash": "df824fc429752478a9fa50b60c52c5b43407e36003b5466d2f7642bb0dd5d8ab"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6f499e8e479f0c4070ca4654bbffe8c5", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "在 REINDEX CONCURRENTLY 前后保留索引的统计信息", "evidence": {"same_day": true, "patch_ids": ["4616682d99b4a9614c6f50c95b8f9808"], "statement_hash": "df824fc429752478a9fa50b60c52c5b43407e36003b5466d2f7642bb0dd5d8ab"}, "url": "/docs/compare/?release=12.5#12.5-aad9ec0f4672573e", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}]}, {"id": "13.1-0e96463fff29e1d5", "cves": [], "html": "<p>修复 <code>REINDEX CONCURRENTLY</code> 不正确的进度报告（Matthias van de Meent，Michael Paquier）<a href=\"https://postgr.es/c/1aedaba78\">§</a></p>", "text": "修复 REINDEX CONCURRENTLY 不正确的进度报告（Matthias van de Meent，Michael Paquier）§", "title": "修复 REINDEX CONCURRENTLY 不正确的进度报告", "commits": ["1aedaba78"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "0048f1807fb6582fc747e7a6cd74e4ba02a1098cb58e250a150e6501727d471c", "section_path": ["变更"], "commit_groups": [["1aedaba78", "8aa4496dd", "e66bcfb4c"]], "identity_text": "Fix incorrect progress reporting from REINDEX CONCURRENTLY (Matthias van de Meent, Michael Paquier)", "commit_aliases": ["1aedaba78", "8aa4496dd", "e66bcfb4c"], "source_commits": ["1aedaba78"], "source_entry_id": "13.1/changes/012", "db_id": "d16575197c7d14abb79c62c535df567e", "patch_ids": ["fabfbb2cf465b61381d034c7cdb3a182"], "statement_hash": "f54fd3c370b012d2732fa3ccd7f5cb257a8732b8cf16252929406293df33d414", "relations": [{"rule": 2, "type": "equivalent", "target": "00194a467f52402b7f116f66c09d9471", "evidence": {"same_day": true, "patch_ids": ["fabfbb2cf465b61381d034c7cdb3a182"], "statement_hash": "f54fd3c370b012d2732fa3ccd7f5cb257a8732b8cf16252929406293df33d414"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "00194a467f52402b7f116f66c09d9471", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 REINDEX CONCURRENTLY 不正确的进度报告", "evidence": {"same_day": true, "patch_ids": ["fabfbb2cf465b61381d034c7cdb3a182"], "statement_hash": "f54fd3c370b012d2732fa3ccd7f5cb257a8732b8cf16252929406293df33d414"}, "url": "/docs/compare/?release=12.5#12.5-93ed92223ac87f9a", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}]}, {"id": "13.1-b92d780874dfee1e", "cves": [], "html": "<p>确保通过规则或可更新视图更新 <code>GENERATED</code> 列所依赖的列时，生成列也得到更新（Tom Lane）<a href=\"https://postgr.es/c/70492195b\">§</a></p>\n<p>此修复还处理了在这些情况下可能未能触发特定列触发器的问题。</p>", "text": "确保通过规则或可更新视图更新 GENERATED 列所依赖的列时，生成列也得到更新（Tom Lane）§ 此修复还处理了在这些情况下可能未能触发特定列触发器的问题。", "title": "确保通过规则或可更新视图更新 GENERATED 列所依赖的列时，生成列也得到更新", "commits": ["70492195b"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "3df0b4afbb671b1b7da3f9dc27f4023b2f83f88b5a72d8a505929bd5ef841d0c", "section_path": ["变更"], "commit_groups": [["43330cdd4", "70492195b", "ad77039fa"]], "identity_text": "Ensure that GENERATED columns are updated when the column(s) they depend on are updated via a rule or an updatable view (Tom Lane) This fix also takes care of possible failure to fire a column-specific trigger in such cases.", "commit_aliases": ["43330cdd4", "70492195b", "ad77039fa"], "source_commits": ["70492195b"], "source_entry_id": "13.1/changes/013", "db_id": "a45fb8720bc700e17cab673f382333c0", "patch_ids": ["4eee3ee8c400465bab30b28c8d723ef0"], "statement_hash": "eff768f3c78ee5cbf1190b31ba0e199a717089101bc5523812af12ca673f8e66", "relations": [{"rule": 2, "type": "equivalent", "target": "32954ad404f6b50f2e286068e3f41e5a", "evidence": {"same_day": true, "patch_ids": ["4eee3ee8c400465bab30b28c8d723ef0"], "statement_hash": "eff768f3c78ee5cbf1190b31ba0e199a717089101bc5523812af12ca673f8e66"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "32954ad404f6b50f2e286068e3f41e5a", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "确保通过规则或可更新视图更新 GENERATED 列所依赖的列时，生成列也得到更新", "evidence": {"same_day": true, "patch_ids": ["4eee3ee8c400465bab30b28c8d723ef0"], "statement_hash": "eff768f3c78ee5cbf1190b31ba0e199a717089101bc5523812af12ca673f8e66"}, "url": "/docs/compare/?release=12.5#12.5-23a8b36a1285b9aa", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}]}, {"id": "13.1-c89429de410fa194", "cves": [], "html": "<p>修复依赖排序规则的分区边界表达式所导致的失败（Tom Lane）<a href=\"https://postgr.es/c/61a78c71a\">§</a></p>", "text": "修复依赖排序规则的分区边界表达式所导致的失败（Tom Lane）§", "title": "修复依赖排序规则的分区边界表达式所导致的失败", "commits": ["61a78c71a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "84a72dcee0db878dd0cd7b64782ee094e6b405b6a413d3d880ec671d51c53aec", "section_path": ["变更"], "commit_groups": [["29f20db85", "61a78c71a", "72647ac3b"]], "identity_text": "Fix failures with collation-dependent partition bound expressions (Tom Lane)", "commit_aliases": ["29f20db85", "61a78c71a", "72647ac3b"], "source_commits": ["61a78c71a"], "source_entry_id": "13.1/changes/014", "db_id": "3aa94aaa97fbf3e45fb9a446ddb201ff", "patch_ids": ["17920f371d7cd8c0a562e75329b01763"], "statement_hash": "61abd944044ae9390ecaae79d89a6d44bf926a75a31ba6a6d8683a7b3b259731", "relations": [{"rule": 2, "type": "equivalent", "target": "e0a9794cb9f97d7ff10346b1d05f8fe2", "evidence": {"same_day": true, "patch_ids": ["17920f371d7cd8c0a562e75329b01763"], "statement_hash": "61abd944044ae9390ecaae79d89a6d44bf926a75a31ba6a6d8683a7b3b259731"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e0a9794cb9f97d7ff10346b1d05f8fe2", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复依赖排序规则的分区边界表达式所导致的失败", "evidence": {"same_day": true, "patch_ids": ["17920f371d7cd8c0a562e75329b01763"], "statement_hash": "61abd944044ae9390ecaae79d89a6d44bf926a75a31ba6a6d8683a7b3b259731"}, "url": "/docs/compare/?release=12.5#12.5-a16c81750495646b", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}]}, {"id": "13.1-c548f033df2a3cfd", "cves": [], "html": "<p>支持对 text 数组进行 hash 运算（Peter Eisentraut）<a href=\"https://postgr.es/c/82d4a2a7d\">§</a></p>\n<p>如果数组元素类型支持排序规则，对数组进行 hash 计算就会失败。尤其是，这使 text 数组列无法用作 hash 分区的分区键。</p>", "text": "支持对 text 数组进行 hash 运算（Peter Eisentraut）§ 如果数组元素类型支持排序规则，对数组进行 hash 计算就会失败。尤其是，这使 text 数组列无法用作 hash 分区的分区键。", "title": "支持对 text 数组进行 hash 运算", "commits": ["82d4a2a7d"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "070c42e53f32c3d7b0750107f7ff70476d806c25c715e00019325956a126a2e2", "section_path": ["变更"], "commit_groups": [["560564d3a", "82d4a2a7d", "ea9087938"]], "identity_text": "Support hashing of text arrays (Peter Eisentraut) Array hashing failed if the array element type is collatable. Notably, this prevented using hash partitioning with a text array column as partition key.", "commit_aliases": ["560564d3a", "82d4a2a7d", "ea9087938"], "source_commits": ["82d4a2a7d"], "source_entry_id": "13.1/changes/015", "db_id": "93b6025e4e4e57c6621930dccc5f805a", "patch_ids": ["113621db64df6ffdcd3e25b5f5a174ad"], "statement_hash": "f6987b0505dbb0d9cc27b1bc10d127ca08fbd9257cda5bba707d544e40a0bf5f", "relations": [{"rule": 2, "type": "equivalent", "target": "f22891ac3918002c7c2efa185329bc78", "evidence": {"same_day": true, "patch_ids": ["113621db64df6ffdcd3e25b5f5a174ad"], "statement_hash": "f6987b0505dbb0d9cc27b1bc10d127ca08fbd9257cda5bba707d544e40a0bf5f"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "f22891ac3918002c7c2efa185329bc78", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "支持对 text 数组进行 hash 运算", "evidence": {"same_day": true, "patch_ids": ["113621db64df6ffdcd3e25b5f5a174ad"], "statement_hash": "f6987b0505dbb0d9cc27b1bc10d127ca08fbd9257cda5bba707d544e40a0bf5f"}, "url": "/docs/compare/?release=12.5#12.5-517a824cfc0e71db", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}]}, {"id": "13.1-bc29c07190e2a280", "cves": [], "html": "<p>防止跨类型日期时间比较中的内部溢出（Nikita Glukhov，Alexander Korotkov，Tom Lane）<a href=\"https://postgr.es/c/5ed20a689\">§</a></p>\n<p>以前，将日期与时间戳比较时，如果日期超出了时间戳的有效范围，就会失败。还有一些边界情况涉及接近限值的时间戳在时区转换期间溢出。</p>", "text": "防止跨类型日期时间比较中的内部溢出（Nikita Glukhov，Alexander Korotkov，Tom Lane）§ 以前，将日期与时间戳比较时，如果日期超出了时间戳的有效范围，就会失败。还有一些边界情况涉及接近限值的时间戳在时区转换期间溢出。", "title": "防止跨类型日期时间比较中的内部溢出", "commits": ["5ed20a689"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "cf213661a9c5d6f6de5551769ecc3aab97d6d4d10c1954b77e98613c283e6ab4", "section_path": ["变更"], "commit_groups": [["3db322eaa", "5ed20a689"]], "identity_text": "Prevent internal overflows in cross-type datetime comparisons (Nikita Glukhov, Alexander Korotkov, Tom Lane) Previously, comparing a date to a timestamp would fail if the date is past the valid range for timestamps. There were also corner cases involving overflow of close-to-the-limit timestamp values during timezone rotation.", "commit_aliases": ["3db322eaa", "5ed20a689"], "source_commits": ["5ed20a689"], "source_entry_id": "13.1/changes/016", "db_id": "c10717a87b742fbca976a5a2a5fe41ed", "patch_ids": ["1b00b2ffd8e4b8969d5aa8764bfcd8cc"], "statement_hash": "51274df1c6e4223b74b1e00a433362a9319ddb6119b8d45d34429dc676b1eb2a", "relations": [], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.1-7d9550883a39e120", "cves": [], "html": "<p>修复 <code>to_date()</code> 和 <code>to_timestamp()</code> 将负年份转换为公元前日期时相差一年的错误（Dar Alathar-Yemen，Tom Lane）<a href=\"https://postgr.es/c/99fd38c02\">§</a></p>\n<p>另外，使负年份与显式 <span>“<span>BC</span>”</span> 标记相抵消，得到 AD 年份。</p>", "text": "修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误（Dar Alathar-Yemen，Tom Lane）§ 另外，使负年份与显式 “BC” 标记相抵消，得到 AD 年份。", "title": "修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误", "commits": ["99fd38c02"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "14fc4ece6ea079a4bcb5fc31b9600709916a7582c5bef348bf153acedc15a457", "section_path": ["变更"], "commit_groups": [["19e798268", "4857e6fe1", "489c9c340", "99fd38c02", "b0fe0b022", "c5232dca8", "db96be24c"]], "identity_text": "Fix off-by-one conversion of negative years to BC dates in to_date() and to_timestamp() (Dar Alathar-Yemen, Tom Lane) Also, arrange for the combination of a negative year and an explicit BC marker to cancel out and produce AD.", "commit_aliases": ["19e798268", "4857e6fe1", "489c9c340", "99fd38c02", "b0fe0b022", "c5232dca8", "db96be24c"], "source_commits": ["99fd38c02"], "source_entry_id": "13.1/changes/017", "db_id": "2fd0b94406c1d907f7cb0ca75b2f92ae", "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec", "relations": [{"rule": 2, "type": "equivalent", "target": "428678237c4649112cd18135a78fceab", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}}, {"rule": 2, "type": "equivalent", "target": "76c32d6fff44d9fe7f6ce0693e97bd23", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}}, {"rule": 2, "type": "equivalent", "target": "84784e380c670115a62107d0b20c4f11", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}}, {"rule": 2, "type": "equivalent", "target": "c9d9de197271b1d2bd42dfae5adabae0", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}}, {"rule": 2, "type": "equivalent", "target": "f41231159e971c7ec0aead8f8434fc68", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "76c32d6fff44d9fe7f6ce0693e97bd23", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}, "url": "/docs/compare/?release=12.5#12.5-4d8b4715108b70a4", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "428678237c4649112cd18135a78fceab", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}, "url": "/docs/compare/?release=11.10#11.10-3c2e9970f05d1632", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "c9d9de197271b1d2bd42dfae5adabae0", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}, "url": "/docs/compare/?release=10.15#10.15-3c2e9970f05d1632", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "84784e380c670115a62107d0b20c4f11", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "修复 to_date() 和 to_timestamp() 中负年份转换为公元前日期的差一错误", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}, "url": "/docs/compare/?release=9.6.20#9.6.20-45294dfc52627d6f", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "f41231159e971c7ec0aead8f8434fc68", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复 to_date() 和 to_timestamp() 中负年份转换为公元前日期的差一错误", "evidence": {"same_day": true, "patch_ids": ["da4f71a59db3b584259538afe5bece44"], "statement_hash": "cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"}, "url": "/docs/compare/?release=9.5.24#9.5.24-45294dfc52627d6f", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-9fd6f1d9a1a80ba3", "cves": [], "html": "<p>允许 <code>jsonpath</code> 的 <code>.datetime()</code> 方法接受 ISO 8601 格式的时间戳（Nikita Glukhov）<a href=\"https://postgr.es/c/abcc0ab16\">§</a> <a href=\"https://postgr.es/c/651bdbc81\">§</a></p>\n<p>SQL 并未要求这样做，但这似乎是合适的，因为我们的 <code>to_json()</code> 函数为了兼容 Javascript，会生成这种时间戳格式。</p>", "text": "允许 jsonpath 的 .datetime() 方法接受 ISO 8601 格式的时间戳（Nikita Glukhov）§ § SQL 并未要求这样做，但这似乎是合适的，因为我们的 to_json() 函数为了兼容 Javascript，会生成这种时间戳格式。", "title": "允许 jsonpath 的 .datetime() 方法接受 ISO 8601 格式的时间戳", "commits": ["651bdbc81", "abcc0ab16"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "eb9cdb5e1552d20322b659532520358200dfcc28036246c0d26192e7e97c9be5", "section_path": ["变更"], "commit_groups": [["651bdbc81", "927d9abb6"], ["abcc0ab16", "c2aa562ea"]], "identity_text": "Allow the jsonpath .datetime() method to accept ISO 8601-format timestamps (Nikita Glukhov) This is not required by SQL, but it seems appropriate since our to_json() functions generate that timestamp format for Javascript compatibility.", "commit_aliases": ["651bdbc81", "927d9abb6", "abcc0ab16", "c2aa562ea"], "source_commits": ["651bdbc81", "abcc0ab16"], "source_entry_id": "13.1/changes/018", "db_id": "f89c1b9e13f9c73c83192b184b13dd30", "patch_ids": ["71cc89adfd789b8ad99156728a2668e1", "e66484f95adb2714e96efa2a1769d978"], "statement_hash": "d6a7af8629ff4600d791efc1b96be8dce64df52b3d6aae7ebaf1f5364281cd69", "relations": [], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.1-f18215fa3b715eca", "cves": [], "html": "<p>确保 <code>archive_mode</code> 设为 <code>always</code> 时，备库会归档 WAL 时间线历史文件（Grigory Smolkin，Fujii Masao）<a href=\"https://postgr.es/c/059caf36c\">§</a></p>\n<p>这一疏漏可能导致后续的 PITR 恢复尝试失败。</p>", "text": "确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件（Grigory Smolkin，Fujii Masao）§ 这一疏漏可能导致后续的 PITR 恢复尝试失败。", "title": "确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件", "commits": ["059caf36c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "cbbba4b1c4e7f1a025b5853a8815948a20aa41c7f0099cd9aaed06fd20af43db", "section_path": ["变更"], "commit_groups": [["059caf36c", "334417538", "40a8fb1e0", "462ff7966", "4d342b9d4", "7be02a3bf", "fd26f7823"]], "identity_text": "Ensure that standby servers will archive WAL timeline history files when archive_mode is set to always (Grigory Smolkin, Fujii Masao) This oversight could lead to failure of subsequent PITR recovery attempts.", "commit_aliases": ["059caf36c", "334417538", "40a8fb1e0", "462ff7966", "4d342b9d4", "7be02a3bf", "fd26f7823"], "source_commits": ["059caf36c"], "source_entry_id": "13.1/changes/019", "db_id": "64226a4dd5aec9b9132c2923c3ee3d1c", "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587", "relations": [{"rule": 2, "type": "equivalent", "target": "053c209c339b478e67a27125edb9d08e", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}}, {"rule": 2, "type": "equivalent", "target": "1da516870d70e895fa4515a85374ec9e", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}}, {"rule": 2, "type": "equivalent", "target": "6a9a910ffb65d51355590d4f0c108eb3", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}}, {"rule": 2, "type": "equivalent", "target": "75be688416a161ae255e49f6b3ac3332", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}}, {"rule": 2, "type": "equivalent", "target": "b27e4f45c04f28b1ef32f985c43dc224", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "053c209c339b478e67a27125edb9d08e", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}, "url": "/docs/compare/?release=12.5#12.5-2b36622fcf63cc8d", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "6a9a910ffb65d51355590d4f0c108eb3", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}, "url": "/docs/compare/?release=11.10#11.10-0e26c59c858c6787", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "b27e4f45c04f28b1ef32f985c43dc224", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}, "url": "/docs/compare/?release=10.15#10.15-0e26c59c858c6787", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "1da516870d70e895fa4515a85374ec9e", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "确保 archive_mode 设为 always 时备库服务器会归档 WAL 时间线历史文件", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}, "url": "/docs/compare/?release=9.6.20#9.6.20-26225572f436edd7", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "75be688416a161ae255e49f6b3ac3332", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "确保 archive_mode 设为 always 时备库服务器会归档 WAL 时间线历史文件", "evidence": {"same_day": true, "patch_ids": ["b93e2d7b5411b5d576ba054ba43323f9"], "statement_hash": "2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"}, "url": "/docs/compare/?release=9.5.24#9.5.24-26225572f436edd7", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-650eaeef1bbde4fd", "cves": [], "html": "<p>修复在使用 <code>kqueue()</code> 的平台上检测 postmaster 过早终止时的边界情况（Thomas Munro）<a href=\"https://postgr.es/c/e0950135a\">§</a> <a href=\"https://postgr.es/c/47522ee00\">§</a></p>", "text": "修复在使用 kqueue() 的平台上检测 postmaster 过早终止时的边界情况（Thomas Munro）§ §", "title": "修复在使用 kqueue() 的平台上检测 postmaster 过早终止时的边界情况", "commits": ["47522ee00", "e0950135a"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "c4e4d19ada5408a542a85a3b703fcd8475ce2d77af22b1ba597fe6ebb844be3f", "section_path": ["变更"], "commit_groups": [["47522ee00", "70516a178"], ["b94109ce3", "e0950135a"]], "identity_text": "Fix edge cases in detecting premature death of the postmaster on platforms that use kqueue() (Thomas Munro)", "commit_aliases": ["47522ee00", "70516a178", "b94109ce3", "e0950135a"], "source_commits": ["47522ee00", "e0950135a"], "source_entry_id": "13.1/changes/020", "db_id": "15d215e464fe076f0eb955d193bd9f27", "patch_ids": ["4b9b9375547266ee3f57ce13989ff2d8", "8b2be810ff13e43fd864af6760c441f8"], "statement_hash": "7b143ffb1b76ff6dcf408a7690ca9bc5757b0d5451b0b1a4b276ab5608a119f0", "relations": [], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.1-8ac209804b7e5b98", "cves": [], "html": "<p>避免排序键为易变表达式时生成不正确的增量排序计划（James Coleman）<a href=\"https://postgr.es/c/2d26c4ac7\">§</a></p>", "text": "避免排序键为易变表达式时生成不正确的增量排序计划（James Coleman）§", "title": "避免排序键为易变表达式时生成不正确的增量排序计划", "commits": ["2d26c4ac7"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "d6b2259b0dcb08d4748e17fc8c0a236ee0a234de8cb58b519ac7449bcfb17c88", "section_path": ["变更"], "commit_groups": [["2d26c4ac7", "ebb7ae839"]], "identity_text": "Avoid generating an incorrect incremental-sort plan when the sort key is a volatile expression (James Coleman)", "commit_aliases": ["2d26c4ac7", "ebb7ae839"], "source_commits": ["2d26c4ac7"], "source_entry_id": "13.1/changes/021", "db_id": "d918d4efbf088cefafa9d8dd8591e220", "patch_ids": ["d0fdd8317870da60c97eb2b2dbcca971"], "statement_hash": "41660d997cc99022b38473fb445d94eb01dafcdbbeaadd33f7a5e176ded1752f", "relations": [], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.1-c208ca7e521b0be0", "cves": [], "html": "<p>修复 GEQO 规划期间考虑逐分区连接时可能发生的崩溃（Tom Lane）<a href=\"https://postgr.es/c/b7f166efa\">§</a></p>", "text": "修复 GEQO 规划期间考虑逐分区连接时可能发生的崩溃（Tom Lane）§", "title": "修复 GEQO 规划期间考虑逐分区连接时可能发生的崩溃", "commits": ["b7f166efa"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "61160827ff9249f1f143b8db702ea3a5fa8db88ec3d8ea7fbfa5c76ea0fd9ccc", "section_path": ["变更"], "commit_groups": [["3d69efc4f", "b7f166efa", "d7885b1f8"]], "identity_text": "Fix possible crash when considering partition-wise joins during GEQO planning (Tom Lane)", "commit_aliases": ["3d69efc4f", "b7f166efa", "d7885b1f8"], "source_commits": ["b7f166efa"], "source_entry_id": "13.1/changes/022", "db_id": "9967ce7aad3dd5dd2ef99246f9879800", "patch_ids": ["12fc209d644e2561968709cfba9ee098"], "statement_hash": "c6c5b2b3cd624ee5deeaee98c0ed57040b2ab370c3b31016bbc9910fcd7741a3", "relations": [{"rule": 2, "type": "equivalent", "target": "5e974e3e4a96fc28a8813100c7838344", "evidence": {"same_day": true, "patch_ids": ["12fc209d644e2561968709cfba9ee098"], "statement_hash": "c6c5b2b3cd624ee5deeaee98c0ed57040b2ab370c3b31016bbc9910fcd7741a3"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "5e974e3e4a96fc28a8813100c7838344", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 GEQO 规划期间考虑逐分区连接时可能发生的崩溃", "evidence": {"same_day": true, "patch_ids": ["12fc209d644e2561968709cfba9ee098"], "statement_hash": "c6c5b2b3cd624ee5deeaee98c0ed57040b2ab370c3b31016bbc9910fcd7741a3"}, "url": "/docs/compare/?release=12.5#12.5-28baac7d04b5dce7", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}]}, {"id": "13.1-106979538f1d54c5", "cves": [], "html": "<p>修复 TOAST 解压缩中可能出现的无限循环或输出数据损坏（Tom Lane）<a href=\"https://postgr.es/c/2330f4d3a\">§</a> <a href=\"https://postgr.es/c/7957e75c5\">§</a></p>", "text": "修复 TOAST 解压缩中可能出现的无限循环或输出数据损坏（Tom Lane）§ §", "title": "修复 TOAST 解压缩中可能出现的无限循环或输出数据损坏", "commits": ["2330f4d3a", "7957e75c5"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "66bb5504cb3dc4875e4268c64ce36689696b742c30245e586924d8714efce4f7", "section_path": ["变更"], "commit_groups": [["2330f4d3a", "dfc797730"], ["7957e75c5", "fd2997565"]], "identity_text": "Fix possible infinite loop or corrupted output data in TOAST decompression (Tom Lane)", "commit_aliases": ["2330f4d3a", "7957e75c5", "dfc797730", "fd2997565"], "source_commits": ["2330f4d3a", "7957e75c5"], "source_entry_id": "13.1/changes/023", "db_id": "2011de0a05a356f5e01aa50c7feb5b0a", "patch_ids": ["1fd605e7a2ed4ecebe485fb075c1bcb9", "d4bd854ee44e7e7e3433eb1b61be5104"], "statement_hash": "8727cc8096a29fb0d77d0dc563321f11e20c67086e858d69216df34c3d75874d", "relations": [], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.1-3faf4ab1965c943a", "cves": [], "html": "<p>修复仅执行清理的 <code>VACUUM</code> 期间对 B-树索引条目数量的统计（Peter Geoghegan）<a href=\"https://postgr.es/c/02c9386ca\">§</a></p>", "text": "修复仅执行清理的 VACUUM 期间对 B-树索引条目数量的统计（Peter Geoghegan）§", "title": "修复仅执行清理的 VACUUM 期间对 B-树索引条目数量的统计", "commits": ["02c9386ca"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "1c487c259e139aa99c5dec4a57621ea6be9ce4cf0d81f693320fa71eacec039b", "section_path": ["变更"], "commit_groups": [["02c9386ca", "48e129134"]], "identity_text": "Fix counting of the number of entries in B-tree indexes during cleanup-only VACUUMs (Peter Geoghegan)", "commit_aliases": ["02c9386ca", "48e129134"], "source_commits": ["02c9386ca"], "source_entry_id": "13.1/changes/024", "db_id": "ded1b49ce93226a851b173c31500fa18", "patch_ids": ["a5c60d0f3c7934626f25079a65bad4e1"], "statement_hash": "dfb9f9fa5a570774d292a6f118a3fc83fa77df20dea74aa7ac02d4fc42e7621c", "relations": [], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.1-1fa45007c49735ce", "cves": [], "html": "<p>确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原（Tomas Vondra）<a href=\"https://postgr.es/c/6a7b55f37\">§</a></p>\n<p>索引条目本不应包含指向行外数据的 TOAST 指针，但 BRIN 没有遵守这一要求。这可能导致 <span>“<span>missing chunk number 0 for toast value NNN</span>”</span> 等错误。（如果现有索引出现这种错误，执行 <code>REINDEX</code> 应该就足以修复。）</p>", "text": "确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原（Tomas Vondra）§ 索引条目本不应包含指向行外数据的 TOAST 指针，但 BRIN 没有遵守这一要求。这可能导致 “missing chunk number 0 for toast value NNN” 等错误。（如果现有索引出现这种错误，执行 REINDEX 应该就足以修复。）", "title": "确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原", "commits": ["6a7b55f37"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "2ae8bbd278abeb5d22420cd3aca409ea90ffeab6177ebfe8b344f3bd9a0d0c38", "section_path": ["变更"], "commit_groups": [["0b96fc977", "6a7b55f37", "7577dd848", "8149e9f9a", "895d0f0e8", "bae31e75f", "d2d3a4bd3"]], "identity_text": "Ensure that data is detoasted before being inserted into a BRIN index (Tomas Vondra) Index entries are not supposed to contain out-of-line TOAST pointers, but BRIN didn't get that memo. This could lead to errors like missing chunk number 0 for toast value NNN. (If you are faced with such an error from an existing index, REINDEX should be enough to fix it.)", "commit_aliases": ["0b96fc977", "6a7b55f37", "7577dd848", "8149e9f9a", "895d0f0e8", "bae31e75f", "d2d3a4bd3"], "source_commits": ["6a7b55f37"], "source_entry_id": "13.1/changes/025", "db_id": "95765ebcf7631dcde378d4d43c4c0712", "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3", "relations": [{"rule": 2, "type": "equivalent", "target": "3a95c594e79e1558d409445b7300f390", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}}, {"rule": 2, "type": "equivalent", "target": "49d146dcd44b3db32a631c0fe0867811", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}}, {"rule": 2, "type": "equivalent", "target": "6d3ae9234fedba53c33fc98ff81de64e", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}}, {"rule": 2, "type": "equivalent", "target": "ab88194be714e40017e2bf390c01f821", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}}, {"rule": 2, "type": "equivalent", "target": "bcd61f90172c14c33f00a2c033767381", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "6d3ae9234fedba53c33fc98ff81de64e", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}, "url": "/docs/compare/?release=12.5#12.5-5dba5e2a1baab5c8", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "3a95c594e79e1558d409445b7300f390", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}, "url": "/docs/compare/?release=11.10#11.10-c53d5ef58c33b47f", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "ab88194be714e40017e2bf390c01f821", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}, "url": "/docs/compare/?release=10.15#10.15-c53d5ef58c33b47f", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "bcd61f90172c14c33f00a2c033767381", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "确保数据在插入 BRIN 索引之前被解 TOAST", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}, "url": "/docs/compare/?release=9.6.20#9.6.20-d22eb05e2689d363", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "49d146dcd44b3db32a631c0fe0867811", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "确保数据在插入 BRIN 索引之前被解 TOAST", "evidence": {"same_day": true, "patch_ids": ["534abd595a708a17fb37ed3a0930c7f9"], "statement_hash": "7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"}, "url": "/docs/compare/?release=9.5.24#9.5.24-d22eb05e2689d363", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-4ec796bc827d056e", "cves": [], "html": "<p>修复带缓冲的 GiST 索引构建，使其在索引具有内含列时正常工作（Pavel Borisov）<a href=\"https://postgr.es/c/962ab473e\">§</a></p>", "text": "修复带缓冲的 GiST 索引构建，使其在索引具有内含列时正常工作（Pavel Borisov）§", "title": "修复带缓冲的 GiST 索引构建，使其在索引具有内含列时正常工作", "commits": ["962ab473e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "4c9a040347d0b822ca3da1178613ac85deaff8821dc264b187938196b775f5ab", "section_path": ["变更"], "commit_groups": [["12945874e", "371668a83", "962ab473e"]], "identity_text": "Fix buffered GiST index builds to work when the index has included columns (Pavel Borisov)", "commit_aliases": ["12945874e", "371668a83", "962ab473e"], "source_commits": ["962ab473e"], "source_entry_id": "13.1/changes/026", "db_id": "ae591682bcbfaa811e33a6b790a536bb", "patch_ids": ["15503c210c7190b67cc55fc711d48d48"], "statement_hash": "1a2c941f1c8128911ad42c6eaf55db66fe2c3a1e7d0c761e9b8305473f32bd79", "relations": [{"rule": 2, "type": "equivalent", "target": "c6609f80bbb5bbc7d296f261f020647e", "evidence": {"same_day": true, "patch_ids": ["15503c210c7190b67cc55fc711d48d48"], "statement_hash": "1a2c941f1c8128911ad42c6eaf55db66fe2c3a1e7d0c761e9b8305473f32bd79"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c6609f80bbb5bbc7d296f261f020647e", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复带缓冲的 GiST 索引构建，使其在索引具有内含列时正常工作", "evidence": {"same_day": true, "patch_ids": ["15503c210c7190b67cc55fc711d48d48"], "statement_hash": "1a2c941f1c8128911ad42c6eaf55db66fe2c3a1e7d0c761e9b8305473f32bd79"}, "url": "/docs/compare/?release=12.5#12.5-33d1ac73a3c7711b", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}]}, {"id": "13.1-eea918ce1066bc1a", "cves": [], "html": "<p>修复 <code>pg_hba_file_rules</code> 视图中不具可移植性的 <code>getnameinfo()</code> 用法（Tom Lane）<a href=\"https://postgr.es/c/a58a631b4\">§</a></p>\n<p>在 FreeBSD 11 以及可能的其他平台上，此错误会使该视图的 <code>address</code> 和 <code>netmask</code> 列始终为空。</p>", "text": "修复 pg_hba_file_rules 视图中不具可移植性的 getnameinfo() 用法（Tom Lane）§ 在 FreeBSD 11 以及可能的其他平台上，此错误会使该视图的 address 和 netmask 列始终为空。", "title": "修复 pg_hba_file_rules 视图中不具可移植性的 getnameinfo() 用法", "commits": ["a58a631b4"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "e0590bf8bc94969538c63374bad781c5c8e5d31048f999576e133be165c8a66e", "section_path": ["变更"], "commit_groups": [["0a4b34031", "7827497ba", "a58a631b4", "d3befe9b9", "f28b089cb"]], "identity_text": "Fix unportable use of getnameinfo() in pg_hba_file_rules view (Tom Lane) On FreeBSD 11, and possibly other platforms, the view's address and netmask columns were always null due to this error.", "commit_aliases": ["0a4b34031", "7827497ba", "a58a631b4", "d3befe9b9", "f28b089cb"], "source_commits": ["a58a631b4"], "source_entry_id": "13.1/changes/027", "db_id": "2a419bdbb78952d90ba035886c3fd4ab", "patch_ids": ["07612e72d396d2122d66a0a72b1a6efc"], "statement_hash": "1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6", "relations": [{"rule": 2, "type": "equivalent", "target": "22caa5d89861b8edea06ad5d67a5dabd", "evidence": {"same_day": true, "patch_ids": ["07612e72d396d2122d66a0a72b1a6efc"], "statement_hash": "1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6"}}, {"rule": 2, "type": "equivalent", "target": "3d842635529bd2e26a671d4defac00c3", "evidence": {"same_day": true, "patch_ids": ["07612e72d396d2122d66a0a72b1a6efc"], "statement_hash": "1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6"}}, {"rule": 2, "type": "equivalent", "target": "4fe5308f26f8ccc15cb62e7101491e87", "evidence": {"same_day": true, "patch_ids": ["07612e72d396d2122d66a0a72b1a6efc"], "statement_hash": "1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3d842635529bd2e26a671d4defac00c3", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 pg_hba_file_rules 视图中不具可移植性的 getnameinfo() 用法", "evidence": {"same_day": true, "patch_ids": ["07612e72d396d2122d66a0a72b1a6efc"], "statement_hash": "1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6"}, "url": "/docs/compare/?release=12.5#12.5-7342525e4b825b80", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "4fe5308f26f8ccc15cb62e7101491e87", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 pg_hba_file_rules 视图中不具可移植性的 getnameinfo() 用法", "evidence": {"same_day": true, "patch_ids": ["07612e72d396d2122d66a0a72b1a6efc"], "statement_hash": "1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6"}, "url": "/docs/compare/?release=11.10#11.10-a67404ca0c5638a0", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "22caa5d89861b8edea06ad5d67a5dabd", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复 pg_hba_file_rules 视图中不具可移植性的 getnameinfo() 用法", "evidence": {"same_day": true, "patch_ids": ["07612e72d396d2122d66a0a72b1a6efc"], "statement_hash": "1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6"}, "url": "/docs/compare/?release=10.15#10.15-a67404ca0c5638a0", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}]}, {"id": "13.1-83a4965946a4fa97", "cves": [], "html": "<p>避免启动并行工作进程时 <code>debug_query_string</code> 为 NULL 所导致的崩溃（Noah Misch）<a href=\"https://postgr.es/c/ab2e2ce46\">§</a></p>", "text": "避免启动并行工作进程时 debug_query_string 为 NULL 所导致的崩溃（Noah Misch）§", "title": "避免启动并行工作进程时 debug_query_string 为 NULL 所导致的崩溃", "commits": ["ab2e2ce46"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "711b895ef779f4c4ea7be480b7fcd54957399535527d94d0b81b9447a8f924fa", "section_path": ["变更"], "commit_groups": [["045466675", "741b84e9f", "ab2e2ce46", "f90e80b91"]], "identity_text": "Avoid crash if debug_query_string is NULL when starting a parallel worker (Noah Misch)", "commit_aliases": ["045466675", "741b84e9f", "ab2e2ce46", "f90e80b91"], "source_commits": ["ab2e2ce46"], "source_entry_id": "13.1/changes/028", "db_id": "d4e57d3ea2431cb29da2824fe065b36b", "patch_ids": ["352162a74b6871772ce95672b7f32f90"], "statement_hash": "f25548746f8fd4e89863a95550507dd68fb246e92a5d3bfcbf18a9f0399e4c9a", "relations": [{"rule": 2, "type": "equivalent", "target": "3cca734fcebd548ffabb772009aaef1b", "evidence": {"same_day": true, "patch_ids": ["352162a74b6871772ce95672b7f32f90"], "statement_hash": "f25548746f8fd4e89863a95550507dd68fb246e92a5d3bfcbf18a9f0399e4c9a"}}, {"rule": 2, "type": "equivalent", "target": "835134fa76df0cee9abb239858d2afe9", "evidence": {"same_day": true, "patch_ids": ["352162a74b6871772ce95672b7f32f90"], "statement_hash": "f25548746f8fd4e89863a95550507dd68fb246e92a5d3bfcbf18a9f0399e4c9a"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "3cca734fcebd548ffabb772009aaef1b", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "避免启动并行工作进程时 debug_query_string 为 NULL 所导致的崩溃", "evidence": {"same_day": true, "patch_ids": ["352162a74b6871772ce95672b7f32f90"], "statement_hash": "f25548746f8fd4e89863a95550507dd68fb246e92a5d3bfcbf18a9f0399e4c9a"}, "url": "/docs/compare/?release=12.5#12.5-c224b36f5927f738", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "835134fa76df0cee9abb239858d2afe9", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "避免启动并行工作进程时 debug_query_string 为 NULL 所导致的崩溃", "evidence": {"same_day": true, "patch_ids": ["352162a74b6871772ce95672b7f32f90"], "statement_hash": "f25548746f8fd4e89863a95550507dd68fb246e92a5d3bfcbf18a9f0399e4c9a"}, "url": "/docs/compare/?release=11.10#11.10-b4c78c2986aed215", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}]}, {"id": "13.1-ea9244931dab7272", "cves": [], "html": "<p>避免 <code>BEFORE ROW UPDATE</code> 触发器返回具有已删除列或<span>“<span>缺失</span>”</span>列的表中的<span>“<span>旧</span>”</span>行时发生失败（Amit Langote，Tom Lane）<a href=\"https://postgr.es/c/d88d8ad28\">§</a> <a href=\"https://postgr.es/c/7aeb6404f\">§</a></p>\n<p>这种阻止更新的方法可能导致崩溃、意外的 <code>CHECK</code> 约束失败或不正确的 <code>RETURNING</code> 输出，因为在这些操作中，<span>“<span>缺失</span>”</span>列会被读取为 NULL。（这里所说的<span>“<span>缺失</span>”</span>列，是指通过 <code>ALTER TABLE ADD COLUMN</code> 添加、具有非 NULL 常量默认值的列。）已删除的列也可能造成问题。</p>", "text": "避免 BEFORE ROW UPDATE 触发器返回具有已删除列或“缺失”列的表中的“旧”行时发生失败（Amit Langote，Tom Lane）§ § 这种阻止更新的方法可能导致崩溃、意外的 CHECK 约束失败或不正确的 RETURNING 输出，因为在这些操作中，“缺失”列会被读取为 NULL。（这里所说的“缺失”列，是指通过 ALTER TABLE ADD COLUMN 添加、具有非 NULL 常量默认值的列。）已删除的列也可能造成问题。", "title": "避免 BEFORE ROW UPDATE 触发器返回具有已删除列或“缺失”列的表中的“旧”行时发生失败", "commits": ["7aeb6404f", "d88d8ad28"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "1a6cc8c1c01d5f1dea1c09ca51f99012abe26338b0a8f2e947c8e0d5b7cb4353", "section_path": ["变更"], "commit_groups": [["20d3fe900"], ["7aeb6404f", "8b39345a9", "94ec005f3"], ["ba9f18abd", "d88d8ad28", "de78c1007"]], "identity_text": "Avoid failures when a BEFORE ROW UPDATE trigger returns the old row of a table having dropped or missing columns (Amit Langote, Tom Lane) This method of suppressing an update could result in crashes, unexpected CHECK constraint failures, or incorrect RETURNING output, because missing columns would read as NULLs for those purposes. (A column is missing for this purpose if it was added by ALTER TABLE ADD COLUMN with a non-NULL, but constant, default value.) Dropped columns could cause trouble as well.", "commit_aliases": ["20d3fe900", "7aeb6404f", "8b39345a9", "94ec005f3", "ba9f18abd", "d88d8ad28", "de78c1007"], "source_commits": ["20d3fe900", "7aeb6404f", "d88d8ad28"], "source_entry_id": "13.1/changes/029", "db_id": "c580365d462cc35a27692a294b8f20ec", "patch_ids": ["52af55f0056f03b02aa4635939017e0f", "7e89c65db5015f202d6be2f9e5df3d4e", "92de05734f58351f15591809d5a00907"], "statement_hash": "7630ef316dfd261b58edc727b386a60f8bbb7fabc85637d66024306504e7b329", "relations": [{"rule": 2, "type": "equivalent", "target": "e69f11669077089097d73c698630fe22", "evidence": {"same_day": true, "patch_ids": ["52af55f0056f03b02aa4635939017e0f", "7e89c65db5015f202d6be2f9e5df3d4e", "92de05734f58351f15591809d5a00907"], "statement_hash": "7630ef316dfd261b58edc727b386a60f8bbb7fabc85637d66024306504e7b329"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e69f11669077089097d73c698630fe22", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "避免 BEFORE ROW UPDATE 触发器返回具有已删除列或“缺失”列的表中的“旧”行时发生失败", "evidence": {"same_day": true, "patch_ids": ["52af55f0056f03b02aa4635939017e0f", "7e89c65db5015f202d6be2f9e5df3d4e", "92de05734f58351f15591809d5a00907"], "statement_hash": "7630ef316dfd261b58edc727b386a60f8bbb7fabc85637d66024306504e7b329"}, "url": "/docs/compare/?release=12.5#12.5-28ecd86af13e9c4f", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}]}, {"id": "13.1-37411b2425f856b1", "cves": [], "html": "<p>修复 <code>EXPLAIN</code> 对增量排序计划的输出，使其在 XML 输出模式下具有正确的标签嵌套（Daniel Gustafsson）<a href=\"https://postgr.es/c/e4538708d\">§</a></p>", "text": "修复 EXPLAIN 对增量排序计划的输出，使其在 XML 输出模式下具有正确的标签嵌套（Daniel Gustafsson）§", "title": "修复 EXPLAIN 对增量排序计划的输出，使其在 XML 输出模式下具有正确的标签嵌套", "commits": ["e4538708d"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "d94d8ba611334440a47da201dad9c12d1fbb6f747d657fc9ea85503fd78b4089", "section_path": ["变更"], "commit_groups": [["87a174c0e", "e4538708d"]], "identity_text": "Fix EXPLAIN's output for incremental sort plans to have correct tag nesting in XML output mode (Daniel Gustafsson)", "commit_aliases": ["87a174c0e", "e4538708d"], "source_commits": ["e4538708d"], "source_entry_id": "13.1/changes/030", "db_id": "4da442924c2659257fe8c21784e61cfd", "patch_ids": ["ec0d4aeb84c8b1b87856ddcf39edf219"], "statement_hash": "7d50c9dcea2a2bb7f3280468b9600f31dcff4b6f31055f2fa14ad8543c7848d6", "relations": [], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.1-210e18fd8bf5ac2c", "cves": [], "html": "<p>避免通过共享内存队列传输很大的数据载荷时发生不必要的失败（Markus Wanner）<a href=\"https://postgr.es/c/1f53d0b9f\">§</a></p>", "text": "避免通过共享内存队列传输很大的数据载荷时发生不必要的失败（Markus Wanner）§", "title": "避免通过共享内存队列传输很大的数据载荷时发生不必要的失败", "commits": ["1f53d0b9f"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "afb2c88e0b9ec95b89c509719b6330d1877fc076c522705014fcbf064708631f", "section_path": ["变更"], "commit_groups": [["1f53d0b9f", "6e03a8a30", "bd0677bb8", "d27c18d26", "d4e654d15", "f78ebbe68"]], "identity_text": "Avoid unnecessary failure when transferring very large payloads through shared memory queues (Markus Wanner)", "commit_aliases": ["1f53d0b9f", "6e03a8a30", "bd0677bb8", "d27c18d26", "d4e654d15", "f78ebbe68"], "source_commits": ["1f53d0b9f"], "source_entry_id": "13.1/changes/031", "db_id": "dece852415693fdfc7ab729e403fbc5e", "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878", "relations": [{"rule": 2, "type": "equivalent", "target": "12ff41f26722da3cc3a0ed8a75a9eec6", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}}, {"rule": 2, "type": "equivalent", "target": "4ba2ea381edaca1a2af12cc610701790", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}}, {"rule": 2, "type": "equivalent", "target": "722acae857036426760487d25452bcc2", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}}, {"rule": 2, "type": "equivalent", "target": "bb9141f24650e5106970fe90e0922e78", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}}, {"rule": 2, "type": "equivalent", "target": "e93b23d1f0a5d1a9e2736c1b8a37d392", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "12ff41f26722da3cc3a0ed8a75a9eec6", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "避免通过共享内存队列传输很大的数据载荷时发生不必要的失败", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}, "url": "/docs/compare/?release=12.5#12.5-7887982efb40aae8", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "4ba2ea381edaca1a2af12cc610701790", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "避免通过共享内存队列传输很大的数据载荷时发生不必要的失败", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}, "url": "/docs/compare/?release=11.10#11.10-53e2e6de806fd956", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "e93b23d1f0a5d1a9e2736c1b8a37d392", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "避免通过共享内存队列传输很大的数据载荷时发生不必要的失败", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}, "url": "/docs/compare/?release=10.15#10.15-53e2e6de806fd956", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "bb9141f24650e5106970fe90e0922e78", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "避免通过共享内存队列传输超大载荷时不必要的失败", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}, "url": "/docs/compare/?release=9.6.20#9.6.20-f65391a2541e01bc", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "722acae857036426760487d25452bcc2", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "避免通过共享内存队列传输超大载荷时不必要的失败", "evidence": {"same_day": true, "patch_ids": ["f1543ff09429b9ab4c2897da71522546"], "statement_hash": "9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"}, "url": "/docs/compare/?release=9.5.24#9.5.24-f65391a2541e01bc", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-bf8efdfab4850177", "cves": [], "html": "<p>修复 SQL 语言函数在某些情况下遗漏结果数据类型强制转换的问题（Tom Lane）<a href=\"https://postgr.es/c/25378db74\">§</a></p>\n<p>根据所涉及的数据类型，这可能导致错误结果或崩溃。</p>", "text": "修复 SQL 语言函数在某些情况下遗漏结果数据类型强制转换的问题（Tom Lane）§ 根据所涉及的数据类型，这可能导致错误结果或崩溃。", "title": "修复 SQL 语言函数在某些情况下遗漏结果数据类型强制转换的问题", "commits": ["25378db74"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "c2bfddfd1a127255e26011f43a9ad2fac21eac8120becae2ba0b2a3cbcd59068", "section_path": ["变更"], "commit_groups": [["25378db74", "c8ab97017"]], "identity_text": "Fix omission of result data type coercion in some cases in SQL-language functions (Tom Lane) This could lead to wrong results or crashes, depending on the data types involved.", "commit_aliases": ["25378db74", "c8ab97017"], "source_commits": ["25378db74"], "source_entry_id": "13.1/changes/032", "db_id": "470c4eb39b9834086366d9fbcae7d6ed", "patch_ids": ["2867013706c2a87edacd3351924c59f4"], "statement_hash": "ad81df6663e4804fcd61d4cb38f1b93cb7d4af7c5bb42588cd683159a8ae2712", "relations": [], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.1-ed3aae7a8e31af6f", "cves": [], "html": "<p>修复 JIT 代码生成中对模板函数属性的不正确处理（Andres Freund）<a href=\"https://postgr.es/c/ae3e75aba\">§</a> <a href=\"https://postgr.es/c/efc9a8e98\">§</a></p>\n<p>已证实这会在 <code>s390x</code> 上导致崩溃，而且其他平台上很可能也存在其他情况。</p>", "text": "修复 JIT 代码生成中对模板函数属性的不正确处理（Andres Freund）§ § 已证实这会在 s390x 上导致崩溃，而且其他平台上很可能也存在其他情况。", "title": "修复 JIT 代码生成中对模板函数属性的不正确处理", "commits": ["ae3e75aba", "efc9a8e98"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "fd17874c8745b0c00ec147e42d900ef263565c527cea2002e49e9400d6ef5fdb", "section_path": ["变更"], "commit_groups": [["4a4f4487d", "c835c7ffe", "efc9a8e98", "fe2a16d8b"], ["72559438f", "ae3e75aba", "c8a2bb0f1", "f3dee5b9a"]], "identity_text": "Fix incorrect handling of template function attributes in JIT code generation (Andres Freund) This has been shown to cause crashes on s390x, and very possibly there are other cases on other platforms.", "commit_aliases": ["4a4f4487d", "72559438f", "ae3e75aba", "c835c7ffe", "c8a2bb0f1", "efc9a8e98", "f3dee5b9a", "fe2a16d8b"], "source_commits": ["ae3e75aba", "efc9a8e98"], "source_entry_id": "13.1/changes/033", "db_id": "8aa117ba3c853d8730288d455829a2cf", "patch_ids": ["14997dfbf3961affbcf31ee3fff6f2d7", "8936ee1f49335cc56e6723c7fd14b16b"], "statement_hash": "8193cb342ca0b4d2f1847ec58f574e19a3ccaac85b81b25d315517803f81831c", "relations": [{"rule": 2, "type": "equivalent", "target": "09db2f8a5b82ecab5291e44b000f8f1b", "evidence": {"same_day": true, "patch_ids": ["14997dfbf3961affbcf31ee3fff6f2d7", "8936ee1f49335cc56e6723c7fd14b16b"], "statement_hash": "8193cb342ca0b4d2f1847ec58f574e19a3ccaac85b81b25d315517803f81831c"}}, {"rule": 2, "type": "equivalent", "target": "476af4bcdb407a549269c7e4f1c0b24e", "evidence": {"same_day": true, "patch_ids": ["14997dfbf3961affbcf31ee3fff6f2d7", "8936ee1f49335cc56e6723c7fd14b16b"], "statement_hash": "8193cb342ca0b4d2f1847ec58f574e19a3ccaac85b81b25d315517803f81831c"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "476af4bcdb407a549269c7e4f1c0b24e", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 JIT 代码生成中对模板函数属性的不正确处理", "evidence": {"same_day": true, "patch_ids": ["14997dfbf3961affbcf31ee3fff6f2d7", "8936ee1f49335cc56e6723c7fd14b16b"], "statement_hash": "8193cb342ca0b4d2f1847ec58f574e19a3ccaac85b81b25d315517803f81831c"}, "url": "/docs/compare/?release=12.5#12.5-c8bb8dc7c5c97a78", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "09db2f8a5b82ecab5291e44b000f8f1b", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 JIT 代码生成中对模板函数属性的不正确处理", "evidence": {"same_day": true, "patch_ids": ["14997dfbf3961affbcf31ee3fff6f2d7", "8936ee1f49335cc56e6723c7fd14b16b"], "statement_hash": "8193cb342ca0b4d2f1847ec58f574e19a3ccaac85b81b25d315517803f81831c"}, "url": "/docs/compare/?release=11.10#11.10-6de6a93aeed9ffbf", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}]}, {"id": "13.1-ef0f1bc0a9d0165e", "cves": [], "html": "<p>改进 PPC 上为 compare_exchange 和 fetch_add 操作生成的代码（Noah Misch）<a href=\"https://postgr.es/c/d41cb63ff\">§</a> <a href=\"https://postgr.es/c/5efa788e1\">§</a></p>", "text": "改进 PPC 上为 compare_exchange 和 fetch_add 操作生成的代码（Noah Misch）§ §", "title": "改进 PPC 上为 compare_exchange 和 fetch_add 操作生成的代码", "commits": ["5efa788e1", "d41cb63ff"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "7f965090db328c7776c28570b4c4ee99ae1a308197dd99b94a29afd0d6cb8e01", "section_path": ["变更"], "commit_groups": [["5efa788e1", "88ea7a118"], ["d41cb63ff", "f5c1167b1"]], "identity_text": "Improve code generated for compare_exchange and fetch_add operations on PPC (Noah Misch)", "commit_aliases": ["5efa788e1", "88ea7a118", "d41cb63ff", "f5c1167b1"], "source_commits": ["5efa788e1", "d41cb63ff"], "source_entry_id": "13.1/changes/034", "db_id": "4b375263a3feb7a271e1b0a87267bae2", "patch_ids": ["ae1baa60fdfb3b131f7868ca555806cc", "d0d468652c388304f917d7c1bc4cd32b"], "statement_hash": "fe07476be7531f41e573958cd06bcd5d7cdd0e99cf3b96e19b302af966ef3fe1", "relations": [], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.1-fc30b1fb28ea1177", "cves": [], "html": "<p>修复 RLS 策略相关的关系缓存内存泄漏（Tom Lane）<a href=\"https://postgr.es/c/f7873900f\">§</a></p>", "text": "修复 RLS 策略相关的关系缓存内存泄漏（Tom Lane）§", "title": "修复 RLS 策略相关的关系缓存内存泄漏", "commits": ["f7873900f"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "096ad6f8eb03b2f42d659c9c1b7ae3f3ad7b9c4733ec65dfb4477fe6cc06b7e0", "section_path": ["变更"], "commit_groups": [["acab757ce", "bda32733c", "bf34ae930", "dd89ba578", "de6725deb", "e55f718fc", "f7873900f"]], "identity_text": "Fix relation cache memory leaks with RLS policies (Tom Lane)", "commit_aliases": ["acab757ce", "bda32733c", "bf34ae930", "dd89ba578", "de6725deb", "e55f718fc", "f7873900f"], "source_commits": ["f7873900f"], "source_entry_id": "13.1/changes/035", "db_id": "3d75c60cd5c1cd0602d6a8ef90e7175f", "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6", "relations": [{"rule": 2, "type": "equivalent", "target": "07c3f5f11a8d2c9b2f973d49833ab88a", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}}, {"rule": 2, "type": "equivalent", "target": "1d1e000571e98ddba13a80b34159607c", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}}, {"rule": 2, "type": "equivalent", "target": "7b847625301e69666a78bf22a37c5dbb", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}}, {"rule": 2, "type": "equivalent", "target": "96cd0fff2b6e9846599349b6ba5d2bd9", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}}, {"rule": 2, "type": "equivalent", "target": "b391f3e10b25d2204b81bd3ea8bad6d7", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "1d1e000571e98ddba13a80b34159607c", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 RLS 策略相关的关系缓存内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}, "url": "/docs/compare/?release=12.5#12.5-b4dac1df6e1c72f6", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "96cd0fff2b6e9846599349b6ba5d2bd9", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 RLS 策略相关的关系缓存内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}, "url": "/docs/compare/?release=11.10#11.10-3873eccb92206723", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "07c3f5f11a8d2c9b2f973d49833ab88a", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复 RLS 策略相关的关系缓存内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}, "url": "/docs/compare/?release=10.15#10.15-3873eccb92206723", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "b391f3e10b25d2204b81bd3ea8bad6d7", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "修复 RLS 策略导致的关系缓存内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}, "url": "/docs/compare/?release=9.6.20#9.6.20-5a50c23ad7cada50", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "7b847625301e69666a78bf22a37c5dbb", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复 RLS 策略导致的关系缓存内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c24aa3c25cf4a9d607cd0598510176a8"], "statement_hash": "79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"}, "url": "/docs/compare/?release=9.5.24#9.5.24-5a50c23ad7cada50", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-f52a7d16d401d3dc", "cves": [], "html": "<p>修复 <code>index_get_partition()</code> 在边界情况下的内存泄漏（Justin Pryzby）<a href=\"https://postgr.es/c/d94d37f8c\">§</a></p>", "text": "修复 index_get_partition() 在边界情况下的内存泄漏（Justin Pryzby）§", "title": "修复 index_get_partition() 在边界情况下的内存泄漏", "commits": ["d94d37f8c"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "0f15b24996f5741dc9f1b3b0477df8519836ea9377fe283014aa889a96462389", "section_path": ["变更"], "commit_groups": [["623644f02", "8ad6a0c1b", "d94d37f8c"]], "identity_text": "Fix edge-case memory leak in index_get_partition() (Justin Pryzby)", "commit_aliases": ["623644f02", "8ad6a0c1b", "d94d37f8c"], "source_commits": ["d94d37f8c"], "source_entry_id": "13.1/changes/036", "db_id": "088d1b3fadfcf2a6de8436e9fd35ab47", "patch_ids": ["8abd069b771dbc3d45325337ae61e3dd"], "statement_hash": "bfa51173e680610ec586ca4a627bacb5fd70d0a766124b2bf5c1e75949063e00", "relations": [{"rule": 2, "type": "equivalent", "target": "ae209c36e41012a6cf82f811f8f62e75", "evidence": {"same_day": true, "patch_ids": ["8abd069b771dbc3d45325337ae61e3dd"], "statement_hash": "bfa51173e680610ec586ca4a627bacb5fd70d0a766124b2bf5c1e75949063e00"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ae209c36e41012a6cf82f811f8f62e75", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 index_get_partition() 在边界情况下的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["8abd069b771dbc3d45325337ae61e3dd"], "statement_hash": "bfa51173e680610ec586ca4a627bacb5fd70d0a766124b2bf5c1e75949063e00"}, "url": "/docs/compare/?release=12.5#12.5-80bb1a21a38a3a1c", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}]}, {"id": "13.1-6cc9fe20ad617d75", "cves": [], "html": "<p>修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏（Tom Lane）<a href=\"https://postgr.es/c/9343bfefa\">§</a></p>", "text": "修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏（Tom Lane）§", "title": "修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏", "commits": ["9343bfefa"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "f3f9a595812e2ce0827c9f09953ba19e5a0e17a45df25ebaba80b84ab2e42b9c", "section_path": ["变更"], "commit_groups": [["397ea901e", "43ca5e07d", "9343bfefa", "a5c77e6b8", "c7573ab1e", "cfa4cff30", "f35c11770"]], "identity_text": "Fix small memory leak when SIGHUP processing decides that a new GUC variable value cannot be applied without a restart (Tom Lane)", "commit_aliases": ["397ea901e", "43ca5e07d", "9343bfefa", "a5c77e6b8", "c7573ab1e", "cfa4cff30", "f35c11770"], "source_commits": ["9343bfefa"], "source_entry_id": "13.1/changes/037", "db_id": "a373153a55f8a80e8ddf4a2c75367c01", "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00", "relations": [{"rule": 2, "type": "equivalent", "target": "0be0283de15f1b9d28b4fe88d79cf481", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}}, {"rule": 2, "type": "equivalent", "target": "509d82dee875e19aea96bee48e3e49bf", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}}, {"rule": 2, "type": "equivalent", "target": "82baed7f6bc4e4089d9fa33cd5906ed1", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}}, {"rule": 2, "type": "equivalent", "target": "e3ce1a7779af456eb60753c476539994", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}}, {"rule": 2, "type": "equivalent", "target": "fb7d08b18e099bd56d514ea6ca3b5ea0", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "509d82dee875e19aea96bee48e3e49bf", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}, "url": "/docs/compare/?release=12.5#12.5-1d7c96a719aa7a02", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "0be0283de15f1b9d28b4fe88d79cf481", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}, "url": "/docs/compare/?release=11.10#11.10-418a4d7581b7a8c6", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "e3ce1a7779af456eb60753c476539994", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}, "url": "/docs/compare/?release=10.15#10.15-418a4d7581b7a8c6", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "fb7d08b18e099bd56d514ea6ca3b5ea0", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "修复 SIGHUP 处理判定新的 GUC 变量值必须重启才能应用时的小内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}, "url": "/docs/compare/?release=9.6.20#9.6.20-53884971cdd88e59", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "82baed7f6bc4e4089d9fa33cd5906ed1", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复 SIGHUP 处理判定新的 GUC 变量值必须重启才能应用时的小内存泄漏", "evidence": {"same_day": true, "patch_ids": ["c33393f6e879fadc7ea327660916e5c1"], "statement_hash": "ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"}, "url": "/docs/compare/?release=9.5.24#9.5.24-53884971cdd88e59", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-5d78588bfec39c5a", "cves": [], "html": "<p>修复 <span>PL/pgsql</span> 的 <code>CALL</code> 处理中的内存泄漏（Pavel Stehule，Tom Lane）<a href=\"https://postgr.es/c/f0e4ec74e\">§</a></p>", "text": "修复 PL/pgsql 的 CALL 处理中的内存泄漏（Pavel Stehule，Tom Lane）§", "title": "修复 PL/pgsql 的 CALL 处理中的内存泄漏", "commits": ["f0e4ec74e"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "537aa8499a8add15cf19ac44e81b907d78b599ab6e032bed603e6110b75eb464", "section_path": ["变更"], "commit_groups": [["13a1901ba", "a6b1f5365", "c1e044bb3", "f0e4ec74e"]], "identity_text": "Fix memory leaks in PL/pgsql's CALL processing (Pavel Stehule, Tom Lane)", "commit_aliases": ["13a1901ba", "a6b1f5365", "c1e044bb3", "f0e4ec74e"], "source_commits": ["f0e4ec74e"], "source_entry_id": "13.1/changes/038", "db_id": "f091620e4b07fff3fdc8824f15494487", "patch_ids": ["350df6d49f15995f06df958aaeabe314"], "statement_hash": "c97d124169f3a40de3e5f38f514078208298c8b00f830e234fcae66e6fcc0424", "relations": [{"rule": 2, "type": "equivalent", "target": "2a4ce31836e51abb821e20352c7759b1", "evidence": {"same_day": true, "patch_ids": ["350df6d49f15995f06df958aaeabe314"], "statement_hash": "c97d124169f3a40de3e5f38f514078208298c8b00f830e234fcae66e6fcc0424"}}, {"rule": 2, "type": "equivalent", "target": "ebd7cdb9cf09146bff9cc934504b0268", "evidence": {"same_day": true, "patch_ids": ["350df6d49f15995f06df958aaeabe314"], "statement_hash": "c97d124169f3a40de3e5f38f514078208298c8b00f830e234fcae66e6fcc0424"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ebd7cdb9cf09146bff9cc934504b0268", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 PL/pgsql 的 CALL 处理中的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["350df6d49f15995f06df958aaeabe314"], "statement_hash": "c97d124169f3a40de3e5f38f514078208298c8b00f830e234fcae66e6fcc0424"}, "url": "/docs/compare/?release=12.5#12.5-866265e1d961abac", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "2a4ce31836e51abb821e20352c7759b1", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 PL/pgsql 的 CALL 处理中的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["350df6d49f15995f06df958aaeabe314"], "statement_hash": "c97d124169f3a40de3e5f38f514078208298c8b00f830e234fcae66e6fcc0424"}, "url": "/docs/compare/?release=11.10#11.10-b7f618c877c9b2ff", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}]}, {"id": "13.1-6506f10a9caa9696", "cves": [], "html": "<p>在 Windows 版 <span>libpq</span> 中，每个进程只调用一次 <code>WSAStartup()</code>，完全不调用 <code>WSACleanup()</code>（Tom Lane，Alexander Lakhin）<a href=\"https://postgr.es/c/d2074daeb\">§</a></p>\n<p>以前，<span>libpq</span> 在连接开始时调用 <code>WSAStartup()</code>，在连接清理时调用 <code>WSACleanup()</code>。但调用 <code>WSACleanup()</code> 似乎会干扰程序的其他操作；特别是，我们观察到过无法将预期输出写入 stdout 的罕见失败。省略该调用似乎没有不良影响，因此予以省略。（这还消除了程序执行一连串数据库连接时，反复加载和卸载 DLL 所造成的性能问题。）</p>", "text": "在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()（Tom Lane，Alexander Lakhin）§ 以前，libpq 在连接开始时调用 WSAStartup()，在连接清理时调用 WSACleanup()。但调用 WSACleanup() 似乎会干扰程序的其他操作；特别是，我们观察到过无法将预期输出写入 stdout 的罕见失败。省略该调用似乎没有不良影响，因此予以省略。（这还消除了程序执行一连串数据库连接时，反复加载和卸载 DLL 所造成的性能问题。）", "title": "在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()", "commits": ["d2074daeb"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "30f35c0b7e1d487d22d1f3d76e300fb4c275fbce57e8903cfb984ae303403698", "section_path": ["变更"], "commit_groups": [["407580aab", "6670e9107", "6acc31a20", "7d00a6b2d", "883226441", "cdc7ace16", "d2074daeb"]], "identity_text": "In libpq for Windows, call WSAStartup() once per process and WSACleanup() not at all (Tom Lane, Alexander Lakhin) Previously, libpq invoked WSAStartup() at connection start and WSACleanup() at connection cleanup. However, it appears that calling WSACleanup() can interfere with other program operations; notably, we have observed rare failures to emit expected output to stdout. There appear to be no ill effects from omitting the call, so do that. (This also eliminates a performance issue from repeated DLL loads and unloads when a program performs a series of database connections.)", "commit_aliases": ["407580aab", "6670e9107", "6acc31a20", "7d00a6b2d", "883226441", "cdc7ace16", "d2074daeb"], "source_commits": ["d2074daeb"], "source_entry_id": "13.1/changes/039", "db_id": "e172f23ad3c58dbb9c06c75a27dbccc8", "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4", "relations": [{"rule": 2, "type": "equivalent", "target": "49590203e538551c9c91e4b6b8ad895d", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}}, {"rule": 2, "type": "equivalent", "target": "b2230b031cd5496b65a99fb8f06b34a6", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}}, {"rule": 2, "type": "equivalent", "target": "b799ee795c42f584d54fb75fe00674ad", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}}, {"rule": 2, "type": "equivalent", "target": "e5f84643de5061ea41929a264d95d11f", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}}, {"rule": 2, "type": "equivalent", "target": "ff3e868befa45aef3ed64fbcffa619da", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "b2230b031cd5496b65a99fb8f06b34a6", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}, "url": "/docs/compare/?release=12.5#12.5-e80962d233c1a58a", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "49590203e538551c9c91e4b6b8ad895d", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}, "url": "/docs/compare/?release=11.10#11.10-16475b1bf65ba826", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "e5f84643de5061ea41929a264d95d11f", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}, "url": "/docs/compare/?release=10.15#10.15-16475b1bf65ba826", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "b799ee795c42f584d54fb75fe00674ad", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "在 Windows 的 libpq 中，每进程调用一次 WSAStartup()，完全不调用 WSACleanup()", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}, "url": "/docs/compare/?release=9.6.20#9.6.20-c7326ef3480a3d5e", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "ff3e868befa45aef3ed64fbcffa619da", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "在 Windows 的 libpq 中，每进程调用一次 WSAStartup()，完全不调用 WSACleanup()", "evidence": {"same_day": true, "patch_ids": ["bd2de89de7c58c241872e1d25f8c6962"], "statement_hash": "53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"}, "url": "/docs/compare/?release=9.5.24#9.5.24-c7326ef3480a3d5e", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-2267e558b078d8ca", "cves": [], "html": "<p>修复 <span>ecpg</span> 库在 Windows 上的逐线程初始化逻辑（Tom Lane，Alexander Lakhin）<a href=\"https://postgr.es/c/fd048e0cb\">§</a></p>\n<p>多线程 <span>ecpg</span> 应用可能因锁定不正确而偶发行为异常。</p>", "text": "修复 ecpg 库在 Windows 上的逐线程初始化逻辑（Tom Lane，Alexander Lakhin）§ 多线程 ecpg 应用可能因锁定不正确而偶发行为异常。", "title": "修复 ecpg 库在 Windows 上的逐线程初始化逻辑", "commits": ["fd048e0cb"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "49c485eeabd8c356b1fcf18354982bdab01c51f58da016bb1051b51c078c52ba", "section_path": ["变更"], "commit_groups": [["12a73f29f", "21d36747d", "379c43bda", "758b45e83", "bdc79ddd1", "f38b66ec0", "fd048e0cb"]], "identity_text": "Fix ecpg library's per-thread initialization logic for Windows (Tom Lane, Alexander Lakhin) Multi-threaded ecpg applications could suffer rare misbehavior due to incorrect locking.", "commit_aliases": ["12a73f29f", "21d36747d", "379c43bda", "758b45e83", "bdc79ddd1", "f38b66ec0", "fd048e0cb"], "source_commits": ["fd048e0cb"], "source_entry_id": "13.1/changes/040", "db_id": "694cc9062e942a7e36d2268cc47ca86b", "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6", "relations": [{"rule": 2, "type": "equivalent", "target": "0c91ba08f7a39546e2d58212d390fb9f", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}}, {"rule": 2, "type": "equivalent", "target": "1ed5dde67f6486babd2a0d24dffdc57d", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}}, {"rule": 2, "type": "equivalent", "target": "b685c8ce1e0ac047162d851829393e09", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}}, {"rule": 2, "type": "equivalent", "target": "bdf254d55b6f5ae4944f832d4e4aba90", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}}, {"rule": 2, "type": "equivalent", "target": "c250772a9e8ab85f9074deec9d995871", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c250772a9e8ab85f9074deec9d995871", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 ecpg 库在 Windows 上的逐线程初始化逻辑", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}, "url": "/docs/compare/?release=12.5#12.5-2d54e279cfe61ffc", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "b685c8ce1e0ac047162d851829393e09", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 ecpg 库在 Windows 上的逐线程初始化逻辑", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}, "url": "/docs/compare/?release=11.10#11.10-8f267a5ed7701a1a", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "0c91ba08f7a39546e2d58212d390fb9f", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复 ecpg 库在 Windows 上的逐线程初始化逻辑", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}, "url": "/docs/compare/?release=10.15#10.15-8f267a5ed7701a1a", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "bdf254d55b6f5ae4944f832d4e4aba90", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "修复 ecpg 库在 Windows 上的每线程初始化逻辑", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}, "url": "/docs/compare/?release=9.6.20#9.6.20-a0471424af6bfc5b", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "1ed5dde67f6486babd2a0d24dffdc57d", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复 ecpg 库在 Windows 上的每线程初始化逻辑", "evidence": {"same_day": true, "patch_ids": ["bb9293718d8ff1ab911d92ebe44317c6"], "statement_hash": "bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"}, "url": "/docs/compare/?release=9.5.24#9.5.24-a0471424af6bfc5b", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-ad1f4baef6ff3b3e", "cves": [], "html": "<p>修复 <span>ecpg</span> 对 <code>B'...'</code> 和 <code>X'...'</code> 字面值的错误处理（Shenhao Wang）<a href=\"https://postgr.es/c/1bccb159a\">§</a> <a href=\"https://postgr.es/c/3459f4169\">§</a></p>", "text": "修复 ecpg 对 B'...' 和 X'...' 字面值的错误处理（Shenhao Wang）§ §", "title": "修复 ecpg 对 B'...' 和 X'...' 字面值的错误处理", "commits": ["1bccb159a", "3459f4169"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "1d8e9fbe9be368dd51d803670ed0657b13fdf2067b048443e65cef25834298f6", "section_path": ["变更"], "commit_groups": [["1bccb159a", "1e3868ab3"], ["3459f4169", "eed4356fa"]], "identity_text": "Fix ecpg's mis-processing of B'...' and X'...' literals (Shenhao Wang)", "commit_aliases": ["1bccb159a", "1e3868ab3", "3459f4169", "eed4356fa"], "source_commits": ["1bccb159a", "3459f4169"], "source_entry_id": "13.1/changes/041", "db_id": "a08fe04d61afb8178d933155b3737bea", "patch_ids": ["dd72512849fa7f3121d16328e0541cd1", "fd71aa8102431bf28f00a8e4c03dd505"], "statement_hash": "c6d88d3306c36ba8b8362d2b83857ec91e1028ae965376bfee3bdb3a82ec54d6", "relations": [], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "13.1-56791cce9174d808", "cves": [], "html": "<p>在 Windows 上，使 <span>psql</span> 以文本模式而非二进制模式读取反引号命令的输出（Tom Lane）<a href=\"https://postgr.es/c/ba4f5413e\">§</a></p>\n<p>这可以确保正确处理换行符。</p>", "text": "在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出（Tom Lane）§ 这可以确保正确处理换行符。", "title": "在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出", "commits": ["ba4f5413e"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "e78b32b413c7b8ea487709fdca3bf36ce137e3016cc9d6d1d2de5290a75fa4ce", "section_path": ["变更"], "commit_groups": [["204d77969", "504f963f7", "66f8687a8", "9eb250339", "aff06436c", "ba4f5413e", "cb0982ba9"]], "identity_text": "On Windows, make psql read the output of a backtick command in text mode, not binary mode (Tom Lane) This ensures proper handling of newlines.", "commit_aliases": ["204d77969", "504f963f7", "66f8687a8", "9eb250339", "aff06436c", "ba4f5413e", "cb0982ba9"], "source_commits": ["ba4f5413e"], "source_entry_id": "13.1/changes/042", "db_id": "4913189de70c687d45c2182a4f59108c", "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0", "relations": [{"rule": 2, "type": "equivalent", "target": "12b9e9de7e0b7392bbc1d550c6cd6df6", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}}, {"rule": 2, "type": "equivalent", "target": "53bb8143f97e643054b70a519a5cd076", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}}, {"rule": 2, "type": "equivalent", "target": "9b1ff42f9ce9a78c5329d18bf7b57a2c", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}}, {"rule": 2, "type": "equivalent", "target": "acc4b62da548c94c0aaf301e49228dab", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}}, {"rule": 2, "type": "equivalent", "target": "f6660ce4942f7be69fae916d43edbb2c", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "acc4b62da548c94c0aaf301e49228dab", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}, "url": "/docs/compare/?release=12.5#12.5-57376eee8ffa54c5", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "53bb8143f97e643054b70a519a5cd076", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}, "url": "/docs/compare/?release=11.10#11.10-32081410b5ff0fa7", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "f6660ce4942f7be69fae916d43edbb2c", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}, "url": "/docs/compare/?release=10.15#10.15-32081410b5ff0fa7", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "9b1ff42f9ce9a78c5329d18bf7b57a2c", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "在 Windows 上，让 psql 以文本模式而非二进制模式读取反引号命令的输出", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}, "url": "/docs/compare/?release=9.6.20#9.6.20-8ec23b68565f2603", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "12b9e9de7e0b7392bbc1d550c6cd6df6", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "在 Windows 上，让 psql 以文本模式而非二进制模式读取反引号命令的输出", "evidence": {"same_day": true, "patch_ids": ["f0676a6fd578633b244e3954ef8f397e"], "statement_hash": "147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"}, "url": "/docs/compare/?release=9.5.24#9.5.24-8ec23b68565f2603", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-289eab149154ff12", "cves": [], "html": "<p>确保 <span>pg_dump</span> 收集扩展配置表的逐列信息（Fabrízio de Royes Mello，Tom Lane）<a href=\"https://postgr.es/c/72857482c\">§</a> <a href=\"https://postgr.es/c/2ea624b4b\">§</a></p>\n<p>未能这样做会导致指定 <code>--inserts</code> 时崩溃，或在使用 <code>COPY</code> 重载表数据时生成指定不完整（虽然通常正确）的 <code>COPY</code> 命令。</p>", "text": "确保 pg_dump 收集扩展配置表的逐列信息（Fabrízio de Royes Mello，Tom Lane）§ § 未能这样做会导致指定 --inserts 时崩溃，或在使用 COPY 重载表数据时生成指定不完整（虽然通常正确）的 COPY 命令。", "title": "确保 pg_dump 收集扩展配置表的逐列信息", "commits": ["2ea624b4b", "72857482c"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "001c37105ca5308fd63698cf6685abc733b5d7bff2c58c06297af63b835d5e73", "section_path": ["变更"], "commit_groups": [["0bfe356c5", "0c79dcb36", "2ea624b4b", "710c0a66d", "9e5f1f21a", "d8c2a2199", "f2c6e94f0"], ["3eb3d3e78", "616110eac", "72857482c"]], "identity_text": "Ensure that pg_dump collects per-column information about extension configuration tables (Fabrízio de Royes Mello, Tom Lane) Failure to do this led to crashes when specifying --inserts, or underspecified (though usually correct) COPY commands when using COPY to reload the tables' data.", "commit_aliases": ["0bfe356c5", "0c79dcb36", "2ea624b4b", "3eb3d3e78", "616110eac", "710c0a66d", "72857482c", "9e5f1f21a", "d8c2a2199", "f2c6e94f0"], "source_commits": ["2ea624b4b", "72857482c"], "source_entry_id": "13.1/changes/043", "db_id": "492efa905a110daab55e63b023fda63d", "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c", "relations": [{"rule": 2, "type": "equivalent", "target": "51e97125f2d3faef60a22cf9e030b5e0", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}}, {"rule": 2, "type": "equivalent", "target": "65fb8ca7077f8c4ac19b871ef61dbc21", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}}, {"rule": 2, "type": "equivalent", "target": "85b52706041163f2bfee5e624f8f1742", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}}, {"rule": 2, "type": "equivalent", "target": "881989477a3ccb0c1e3be1c41ac86018", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}}, {"rule": 2, "type": "equivalent", "target": "e75980d75dea2292bf4b5340ea8c6f24", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "e75980d75dea2292bf4b5340ea8c6f24", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "确保 pg_dump 收集扩展配置表的逐列信息", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}, "url": "/docs/compare/?release=12.5#12.5-dfe9b23fbfb99337", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "85b52706041163f2bfee5e624f8f1742", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "确保 pg_dump 收集扩展配置表的逐列信息", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}, "url": "/docs/compare/?release=11.10#11.10-e219d3bedd5c79f3", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "65fb8ca7077f8c4ac19b871ef61dbc21", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "确保 pg_dump 收集扩展配置表的逐列信息", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}, "url": "/docs/compare/?release=10.15#10.15-e219d3bedd5c79f3", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "881989477a3ccb0c1e3be1c41ac86018", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "确保 pg_dump 收集扩展配置表的逐列信息", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}, "url": "/docs/compare/?release=9.6.20#9.6.20-e219d3bedd5c79f3", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "51e97125f2d3faef60a22cf9e030b5e0", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "确保 pg_dump 收集扩展配置表的逐列信息", "evidence": {"same_day": true, "patch_ids": ["02c8ade13193991cd3513a0d65d12f48", "ad39259a02a217957e5e087530b515e1"], "statement_hash": "5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"}, "url": "/docs/compare/?release=9.5.24#9.5.24-e219d3bedd5c79f3", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-75fe4af2348b834a", "cves": [], "html": "<p>使 <span>pg_upgrade</span> 检查目标集群中的表空间目录是否已存在（Bruce Momjian）<a href=\"https://postgr.es/c/59cfff65b\">§</a> <a href=\"https://postgr.es/c/79fe23465\">§</a></p>", "text": "使 pg_upgrade 检查目标集群中的表空间目录是否已存在（Bruce Momjian）§ §", "title": "使 pg_upgrade 检查目标集群中的表空间目录是否已存在", "commits": ["59cfff65b", "79fe23465"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "57ad146800c213e69e924e337b5a57b542a5556ced40deb010d2a0095db41996", "section_path": ["变更"], "commit_groups": [["0ab7ca98a", "16be4e435", "536de14e2", "6e34cc8ab", "79fe23465", "9dcffe69a", "b05672c72"], ["39c23c199", "3c0471b5f", "59cfff65b", "85fedf39f", "a106236d8", "d9ae2297b", "eb421c83b"]], "identity_text": "Make pg_upgrade check for pre-existence of tablespace directories in the target cluster (Bruce Momjian)", "commit_aliases": ["0ab7ca98a", "16be4e435", "39c23c199", "3c0471b5f", "536de14e2", "59cfff65b", "6e34cc8ab", "79fe23465", "85fedf39f", "9dcffe69a", "a106236d8", "b05672c72", "d9ae2297b", "eb421c83b"], "source_commits": ["59cfff65b", "79fe23465"], "source_entry_id": "13.1/changes/044", "db_id": "98c82203e1de7fa217bd04b22e341a62", "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740", "relations": [{"rule": 2, "type": "equivalent", "target": "487015ba212a94883add480a0161d282", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}}, {"rule": 2, "type": "equivalent", "target": "6359b4855420c50bac500e091bcf21ac", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}}, {"rule": 2, "type": "equivalent", "target": "97763d342fba71c440133e01ec21602b", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}}, {"rule": 2, "type": "equivalent", "target": "9cabfbf717fd03e9b875f151dac12f27", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}}, {"rule": 2, "type": "equivalent", "target": "d0d308a14a919dcdd011ad9f5ffbb853", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "487015ba212a94883add480a0161d282", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "使 pg_upgrade 检查目标集群中的表空间目录是否已存在", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}, "url": "/docs/compare/?release=12.5#12.5-4b61295613a298fd", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "97763d342fba71c440133e01ec21602b", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "使 pg_upgrade 检查目标集群中的表空间目录是否已存在", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}, "url": "/docs/compare/?release=11.10#11.10-afa10de72fe92b10", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "6359b4855420c50bac500e091bcf21ac", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "使 pg_upgrade 检查目标集群中的表空间目录是否已存在", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}, "url": "/docs/compare/?release=10.15#10.15-afa10de72fe92b10", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "d0d308a14a919dcdd011ad9f5ffbb853", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "让 pg_upgrade 检查目标集簇中表空间目录的预先存在", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}, "url": "/docs/compare/?release=9.6.20#9.6.20-a8ab8dfebde36bbb", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "9cabfbf717fd03e9b875f151dac12f27", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "让 pg_upgrade 检查目标集簇中表空间目录的预先存在", "evidence": {"same_day": true, "patch_ids": ["385da7b634c4d18cad66323aed6e5396", "3d023e2eb93a8c3bf9b9c1a6fcef7726"], "statement_hash": "5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"}, "url": "/docs/compare/?release=9.5.24#9.5.24-a8ab8dfebde36bbb", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-a00da32fc1ac8675", "cves": [], "html": "<p>修复 <code>contrib/pgcrypto</code> 中潜在的内存泄漏（Michael Paquier）<a href=\"https://postgr.es/c/1bd9b2b23\">§</a></p>", "text": "修复 contrib/pgcrypto 中潜在的内存泄漏（Michael Paquier）§", "title": "修复 contrib/pgcrypto 中潜在的内存泄漏", "commits": ["1bd9b2b23"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "df25dc1f5f0f221a3b377e6f7b79460ca42fdc712dce6432dd15ce7d465fb378", "section_path": ["变更"], "commit_groups": [["099238322", "1bd9b2b23", "57bdf29dd", "914139081", "994a02f7f", "ca2a12c93", "e8d36f9ec"]], "identity_text": "Fix potential memory leak in contrib/pgcrypto (Michael Paquier)", "commit_aliases": ["099238322", "1bd9b2b23", "57bdf29dd", "914139081", "994a02f7f", "ca2a12c93", "e8d36f9ec"], "source_commits": ["1bd9b2b23"], "source_entry_id": "13.1/changes/045", "db_id": "45ceced99bffb96ca8569d3037b11626", "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3", "relations": [{"rule": 2, "type": "equivalent", "target": "1cea404266f3f4251614e74fb269c3c6", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}}, {"rule": 2, "type": "equivalent", "target": "84f48de4e35f0e3df8a91dd97a3c1ace", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}}, {"rule": 2, "type": "equivalent", "target": "98075fcb9c2c925ab7ae15b877964c92", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}}, {"rule": 2, "type": "equivalent", "target": "a090170563e74e2c4325af5b54d15723", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}}, {"rule": 2, "type": "equivalent", "target": "b7f3d4c288208e0731eaebf124833acb", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "b7f3d4c288208e0731eaebf124833acb", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复 contrib/pgcrypto 中潜在的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}, "url": "/docs/compare/?release=12.5#12.5-d5c4b8e65d7a01af", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "98075fcb9c2c925ab7ae15b877964c92", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复 contrib/pgcrypto 中潜在的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}, "url": "/docs/compare/?release=11.10#11.10-c708d505f68a3e88", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "1cea404266f3f4251614e74fb269c3c6", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复 contrib/pgcrypto 中潜在的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}, "url": "/docs/compare/?release=10.15#10.15-c708d505f68a3e88", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "84f48de4e35f0e3df8a91dd97a3c1ace", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "修复 contrib/pgcrypto 中潜在的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}, "url": "/docs/compare/?release=9.6.20#9.6.20-c708d505f68a3e88", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "a090170563e74e2c4325af5b54d15723", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "修复 contrib/pgcrypto 中潜在的内存泄漏", "evidence": {"same_day": true, "patch_ids": ["fcad37cf0a78e9c69dccacbe62ebb55e"], "statement_hash": "c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"}, "url": "/docs/compare/?release=9.5.24#9.5.24-c708d505f68a3e88", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-94626e77d35a3bca", "cves": [], "html": "<p>在 <code>contrib/pgcrypto</code> 中增加对一种不太可能发生的失败情况的检查（Daniel Gustafsson）<a href=\"https://postgr.es/c/3d338a46a\">§</a></p>", "text": "在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查（Daniel Gustafsson）§", "title": "在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查", "commits": ["3d338a46a"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "63b1d57f7cc6f25ab552c875754324864468fc5013961c8e914a1eb74eb351aa", "section_path": ["变更"], "commit_groups": [["02a75f836", "1eb2d7e3e", "3d338a46a", "3e1a4c260", "7004ce758", "9c3032881", "e15115b4d"]], "identity_text": "Add check for an unlikely failure case in contrib/pgcrypto (Daniel Gustafsson)", "commit_aliases": ["02a75f836", "1eb2d7e3e", "3d338a46a", "3e1a4c260", "7004ce758", "9c3032881", "e15115b4d"], "source_commits": ["3d338a46a"], "source_entry_id": "13.1/changes/046", "db_id": "693a364e73f018703ffd62b9539df0e4", "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4", "relations": [{"rule": 2, "type": "equivalent", "target": "0d5d2e9e50fda96c7c7a5634bd6c0240", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}}, {"rule": 2, "type": "equivalent", "target": "3c818cf27839b50c64d7fe4ebfc48a48", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}}, {"rule": 2, "type": "equivalent", "target": "3cb5853a4b4a15ef6c0d06d259305fe2", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}}, {"rule": 2, "type": "equivalent", "target": "dbac2d5baf492e2785e215805432046b", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}}, {"rule": 2, "type": "equivalent", "target": "ea8273c89c569c3245f6055814b1914d", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "3c818cf27839b50c64d7fe4ebfc48a48", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}, "url": "/docs/compare/?release=12.5#12.5-c48c2f474d5286b5", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "3cb5853a4b4a15ef6c0d06d259305fe2", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}, "url": "/docs/compare/?release=11.10#11.10-d014e971353ca539", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "ea8273c89c569c3245f6055814b1914d", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}, "url": "/docs/compare/?release=10.15#10.15-d014e971353ca539", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "dbac2d5baf492e2785e215805432046b", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "在 contrib/pgcrypto 中为一个不太可能发生的失败情况添加检查", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}, "url": "/docs/compare/?release=9.6.20#9.6.20-c4df30e1bb4d4367", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "0d5d2e9e50fda96c7c7a5634bd6c0240", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "在 contrib/pgcrypto 中为一个不太可能发生的失败情况添加检查", "evidence": {"same_day": true, "patch_ids": ["4f04e866de664fee005bc1be03012a43"], "statement_hash": "a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"}, "url": "/docs/compare/?release=9.5.24#9.5.24-c4df30e1bb4d4367", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-1cf13cfa7ad433ac", "cves": [], "html": "<p>修复最近添加的 <code>timetz</code> 测试用例，使其在美国未实行夏令时期间也能正常工作（Tom Lane）<a href=\"https://postgr.es/c/ee03baad2\">§</a></p>", "text": "修复最近添加的 timetz 测试用例，使其在美国未实行夏令时期间也能正常工作（Tom Lane）§", "title": "修复最近添加的 timetz 测试用例，使其在美国未实行夏令时期间也能正常工作", "commits": ["ee03baad2"], "section": "变更", "category": "bugfix", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "39816112ef8e4fba1875bc4437946aec10ca062cbc961209a74bd578ea0f3a50", "section_path": ["变更"], "commit_groups": [["24d769b90", "25b587f03", "4a071afbd", "c39f4e81d", "ee03baad2"]], "identity_text": "Fix recently-added timetz test case so it works when the USA is not observing daylight savings time (Tom Lane)", "commit_aliases": ["24d769b90", "25b587f03", "4a071afbd", "c39f4e81d", "ee03baad2"], "source_commits": ["ee03baad2"], "source_entry_id": "13.1/changes/047", "db_id": "29ee1359b70e89be6ff3c91491982109", "patch_ids": ["faa0ab88071d9f2c84164048aceaf04b"], "statement_hash": "b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47", "relations": [{"rule": 2, "type": "equivalent", "target": "7aa39c9385d6d1ba1679568b9da00bba", "evidence": {"same_day": true, "patch_ids": ["faa0ab88071d9f2c84164048aceaf04b"], "statement_hash": "b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47"}}, {"rule": 2, "type": "equivalent", "target": "9ca9d5b4c77251fc1b35a67283d642ca", "evidence": {"same_day": true, "patch_ids": ["faa0ab88071d9f2c84164048aceaf04b"], "statement_hash": "b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47"}}, {"rule": 2, "type": "equivalent", "target": "b9e29e97c644a91f72344b503ab22257", "evidence": {"same_day": true, "patch_ids": ["faa0ab88071d9f2c84164048aceaf04b"], "statement_hash": "b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47"}}], "version": "13.1", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9ca9d5b4c77251fc1b35a67283d642ca", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "修复最近添加的 timetz 测试用例，使其在美国未实行夏令时期间也能正常工作", "evidence": {"same_day": true, "patch_ids": ["faa0ab88071d9f2c84164048aceaf04b"], "statement_hash": "b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47"}, "url": "/docs/compare/?release=12.5#12.5-a31317ae21de06d0", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "b9e29e97c644a91f72344b503ab22257", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "修复最近添加的 timetz 测试用例，使其在美国未实行夏令时期间也能正常工作", "evidence": {"same_day": true, "patch_ids": ["faa0ab88071d9f2c84164048aceaf04b"], "statement_hash": "b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47"}, "url": "/docs/compare/?release=11.10#11.10-a677bf8bd4585eb9", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "7aa39c9385d6d1ba1679568b9da00bba", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "修复最近添加的 timetz 测试用例，使其在美国未实行夏令时期间也能正常工作", "evidence": {"same_day": true, "patch_ids": ["faa0ab88071d9f2c84164048aceaf04b"], "statement_hash": "b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47"}, "url": "/docs/compare/?release=10.15#10.15-a677bf8bd4585eb9", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}]}, {"id": "13.1-69c39fa41c88aa05", "cves": [], "html": "<p>将时区数据文件更新到 <span>tzdata</span> 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。（Tom Lane）<a href=\"https://postgr.es/c/3f26dca76\">§</a> <a href=\"https://postgr.es/c/96ed2ae93\">§</a></p>", "text": "将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。（Tom Lane）§ §", "title": "将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。", "commits": ["3f26dca76", "96ed2ae93"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "4d3d4fb5a80423017afb6745f06ff4028da8494b65534df8926d0a57a4a41a00", "section_path": ["变更"], "commit_groups": [["02f86d523", "05a36321a", "0abebb58f", "78ccf7f42", "7d6d6bce4", "96ed2ae93", "a357cc05d"], ["13dbf4ab8", "2b9166dbc", "3f26dca76", "aae4097b0", "b39c94097", "c4a803ac7", "c8cb243cb"]], "identity_text": "Update time zone data files to tzdata release 2020d for DST law changes in Fiji, Morocco, Palestine, the Canadian Yukon, Macquarie Island, and Casey Station (Antarctica); plus historical corrections for France, Hungary, Monaco, and Palestine. (Tom Lane)", "commit_aliases": ["02f86d523", "05a36321a", "0abebb58f", "13dbf4ab8", "2b9166dbc", "3f26dca76", "78ccf7f42", "7d6d6bce4", "96ed2ae93", "a357cc05d", "aae4097b0", "b39c94097", "c4a803ac7", "c8cb243cb"], "source_commits": ["3f26dca76", "96ed2ae93"], "source_entry_id": "13.1/changes/048", "db_id": "17ad90072e2a8914a07d4372466d24e4", "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"], "statement_hash": "c77e3801ff3941d2d01739806c015eda2ca4a03ab1bb652efed7a98081d3486e", "relations": [{"rule": 2, "type": "equivalent", "target": "0c059116f712fa34ddefc1f3c11c86f8", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"]}}, {"rule": 2, "type": "equivalent", "target": "24974773d2daa01debb16ce936e6bdc1", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"]}}, {"rule": 2, "type": "equivalent", "target": "5971ee3b479e16b4b8d6835dad1bb9e3", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"]}}, {"rule": 2, "type": "equivalent", "target": "5feb640716a0600d1dca369557b946b5", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"]}}, {"rule": 2, "type": "equivalent", "target": "c58c928aec65249ba5f1bb5034af5752", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"], "statement_hash": "c77e3801ff3941d2d01739806c015eda2ca4a03ab1bb652efed7a98081d3486e"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c58c928aec65249ba5f1bb5034af5752", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"], "statement_hash": "c77e3801ff3941d2d01739806c015eda2ca4a03ab1bb652efed7a98081d3486e"}, "url": "/docs/compare/?release=12.5#12.5-a596e773c3224b3e", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "5feb640716a0600d1dca369557b946b5", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"]}, "url": "/docs/compare/?release=11.10#11.10-35674ee16596b2e4", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "0c059116f712fa34ddefc1f3c11c86f8", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"]}, "url": "/docs/compare/?release=10.15#10.15-35674ee16596b2e4", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "24974773d2daa01debb16ce936e6bdc1", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "更新时区数据文件到 tzdata 版本 2020d，涉及斐济、摩洛哥、巴勒斯坦、加拿大育空、麦夸里岛和凯西站（南极洲）的夏令时法规变更，以及法国、匈牙利、摩纳哥和巴勒斯坦的历史修正。", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"]}, "url": "/docs/compare/?release=9.6.20#9.6.20-87c614097f028f7e", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "5971ee3b479e16b4b8d6835dad1bb9e3", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "更新时区数据文件到 tzdata 版本 2020d，涉及斐济、摩洛哥、巴勒斯坦、加拿大育空、麦夸里岛和凯西站（南极洲）的夏令时法规变更，以及法国、匈牙利、摩纳哥和巴勒斯坦的历史修正。", "evidence": {"same_day": true, "patch_ids": ["6b7844d473905050493fea203fa69475", "fe3bd98ff6db91aad632edf88c490930"]}, "url": "/docs/compare/?release=9.5.24#9.5.24-87c614097f028f7e", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}, {"id": "13.1-a63484f22ea7c05b", "cves": [], "html": "<p>将我们使用的时区库副本同步到 IANA tzcode 2020d 版（Tom Lane）<a href=\"https://postgr.es/c/e0cf5e9b2\">§</a> <a href=\"https://postgr.es/c/0e551533b\">§</a></p>\n<p>这纳入了上游将 <span>zic</span> 默认输出选项从 <span>“<span>fat</span>”</span> 改为 <span>“<span>slim</span>”</span> 的修改。对我们而言，这只是表面上的变化，因为在 v13 之前的分支中，我们仍然选择 <span>“<span>fat</span>”</span> 模式。此项修改还确保 <code>strftime()</code> 只在失败时才改变 <code>errno</code>。</p>", "text": "将我们使用的时区库副本同步到 IANA tzcode 2020d 版（Tom Lane）§ § 这纳入了上游将 zic 默认输出选项从 “fat” 改为 “slim” 的修改。对我们而言，这只是表面上的变化，因为在 v13 之前的分支中，我们仍然选择 “fat” 模式。此项修改还确保 strftime() 只在失败时才改变 errno。", "title": "将我们使用的时区库副本同步到 IANA tzcode 2020d 版", "commits": ["0e551533b", "e0cf5e9b2"], "section": "变更", "category": "improvement", "source_url": "/docs/release/13.1/#id-1.11.6.28.5", "source_hash": "8e80dfd17280c1be5e32a09cc37f7ba10b2302aad8b92cb4405abefa7413387e", "section_path": ["变更"], "commit_groups": [["0e551533b", "34285083b", "58f9f52a3", "c5054da0d", "d2ffe0a00", "f56c42e50", "ff26f804a"], ["38fac9c1f", "3d13a8307", "41eeeb348", "4a2528bfa", "5515c73a6", "ce0e97f80", "e0cf5e9b2"]], "identity_text": "Sync our copy of the timezone library with IANA tzcode release 2020d (Tom Lane) This absorbs upstream's change of zic's default output option from fat to slim. That's just cosmetic for our purposes, as we continue to select the fat mode in pre-v13 branches. This change also ensures that strftime() does not change errno unless it fails.", "commit_aliases": ["0e551533b", "34285083b", "38fac9c1f", "3d13a8307", "41eeeb348", "4a2528bfa", "5515c73a6", "58f9f52a3", "c5054da0d", "ce0e97f80", "d2ffe0a00", "e0cf5e9b2", "f56c42e50", "ff26f804a"], "source_commits": ["0e551533b", "e0cf5e9b2"], "source_entry_id": "13.1/changes/049", "db_id": "ec084e870ae41f74062a40300d06758a", "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd", "relations": [{"rule": 2, "type": "equivalent", "target": "156883958c90dfb68c440d6f4e13dd68", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}}, {"rule": 2, "type": "equivalent", "target": "409e74a5e9afc7b68a41d7cbf221d59a", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}}, {"rule": 2, "type": "equivalent", "target": "52d347da31273abef1af14ed10ad0fb1", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}}, {"rule": 2, "type": "equivalent", "target": "6336dce9078f25448e30e2435b0ec30b", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}}, {"rule": 2, "type": "equivalent", "target": "9c701cb8701480bb7bf7c82ff3b881ed", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}}], "version": "13.1", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "9c701cb8701480bb7bf7c82ff3b881ed", "kind": "equivalent", "version": "12.5", "label": "12.5", "title": "将我们使用的时区库副本同步到 IANA tzcode 2020d 版", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}, "url": "/docs/compare/?release=12.5#12.5-e5bcd809852f6361", "source_url": "/docs/release/12.5/#id-1.11.6.23.5"}, {"db_id": "409e74a5e9afc7b68a41d7cbf221d59a", "kind": "equivalent", "version": "11.10", "label": "11.10", "title": "将我们使用的时区库副本同步到 IANA tzcode 2020d 版", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}, "url": "/docs/compare/?release=11.10#11.10-7078d7176841368b", "source_url": "/docs/release/11.10/#id-1.11.6.17.5"}, {"db_id": "156883958c90dfb68c440d6f4e13dd68", "kind": "equivalent", "version": "10.15", "label": "10.15", "title": "将我们使用的时区库副本同步到 IANA tzcode 2020d 版", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}, "url": "/docs/compare/?release=10.15#10.15-7078d7176841368b", "source_url": "/docs/release/10.15/#id-1.11.6.13.5"}, {"db_id": "6336dce9078f25448e30e2435b0ec30b", "kind": "equivalent", "version": "9.6.20", "label": "9.6.20", "title": "把我们的时区库副本与 IANA tzcode 版本 2020d 同步", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}, "url": "/docs/compare/?release=9.6.20#9.6.20-158d67700c1237ce", "source_url": "/docs/release/9.6.20/#id-1.11.6.9.5"}, {"db_id": "52d347da31273abef1af14ed10ad0fb1", "kind": "equivalent", "version": "9.5.24", "label": "9.5.24", "title": "把我们的时区库副本与 IANA tzcode 版本 2020d 同步", "evidence": {"same_day": true, "patch_ids": ["5329b926526a7821e21cf0be73875781", "c847714957ad066c1565c75e71ba3f93"], "statement_hash": "b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"}, "url": "/docs/compare/?release=9.5.24#9.5.24-158d67700c1237ce", "source_url": "/docs/release/9.5.24/#id-1.11.6.6.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 49}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 24}, {"key": "security", "label": "安全相关", "count": 4}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 21}], "total": 49, "release_count": 1, "cross_major": false, "cve_count": 3, "cves": [{"id": "CVE-2020-25695", "url": "https://www.postgresql.org/support/security/CVE-2020-25695/", "fixed": {"10": "10.15", "11": "11.10", "12": "12.5", "13": "13.1", "9.5": "9.5.24", "9.6": "9.6.20"}, "score": 8.8, "title": "禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器", "vector": "AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "12": "12", "13": "13", "9.5": "9.5", "9.6": "9.6"}, "component": "core server", "published": {"10": "2020-11-12", "11": "2020-11-12", "12": "2020-11-12", "13": "2020-11-12", "9.5": "2020-11-12", "9.6": "2020-11-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "An attacker having permission to create non-temporary objects in at least one schema can execute arbitrary SQL functions under the identity of a superuser.\n\nWhile promptly updating PostgreSQL is the best remediation for most users, a user unable to do that can work around the vulnerability by disabling autovacuum and not manually running ANALYZE , CLUSTER , REINDEX , CREATE INDEX , VACUUM FULL , REFRESH MATERIALIZED VIEW , or a restore from output of the pg_dump command. Performance may degrade quickly under this workaround.\n\nVACUUM without the FULL option is safe, and all commands are fine when a trusted user owns the target object.\n\nThe PostgreSQL project thanks Etienne Stalmans for reporting this problem.", "first_published": "2020-11-12", "fixed_version": "13.1"}, {"id": "CVE-2020-25694", "url": "https://www.postgresql.org/support/security/CVE-2020-25694/", "fixed": {"10": "10.15", "11": "11.10", "12": "12.5", "13": "13.1", "9.5": "9.5.24", "9.6": "9.6.20"}, "score": 8.1, "title": "修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用", "vector": "AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "12": "12", "13": "13", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"10": "2020-11-12", "11": "2020-11-12", "12": "2020-11-12", "13": "2020-11-12", "9.5": "2020-11-12", "9.6": "2020-11-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "Many PostgreSQL-provided client applications have options that create additional database connections. Some of those applications reuse only the basic connection parameters (e.g. host , user , port ), dropping others. If this drops a security-relevant parameter (e.g. channel_binding , sslmode , requirepeer , gssencmode ), the attacker has an opportunity to complete a MITM attack or observe cleartext transmission.\n\nAffected applications are clusterdb , pg_dump , pg_restore , psql , reindexdb , and vacuumdb . The vulnerability arises only if one invokes an affected client application with a connection string containing a security-relevant parameter.\n\nThis also fixes how the \\connect command of psql reuses connection parameters, i.e. all non-overridden parameters from a previous connection string now re-used.\n\nThe PostgreSQL project thanks Peter Eisentraut for reporting this problem.", "first_published": "2020-11-12", "fixed_version": "13.1"}, {"id": "CVE-2020-25696", "url": "https://www.postgresql.org/support/security/CVE-2020-25696/", "fixed": {"10": "10.15", "11": "11.10", "12": "12.5", "13": "13.1", "9.5": "9.5.24", "9.6": "9.6.20"}, "score": 7.5, "title": "防止 psql 的 \\gset 命令修改具有特殊处理方式的变量", "vector": "AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11", "12": "12", "13": "13", "9.5": "9.5", "9.6": "9.6"}, "component": "client", "published": {"10": "2020-11-12", "11": "2020-11-12", "12": "2020-11-12", "13": "2020-11-12", "9.5": "2020-11-12", "9.6": "2020-11-12"}, "introduced": {}, "cvss_version": "3.0", "description_en": "The \\gset meta-command, which sets psql variables based on query results, does not distinguish variables that control psql behavior. If an interactive psql session uses \\gset when querying a compromised server, the attacker can execute arbitrary code as the operating system account running psql . Using \\gset with a prefix not found among specially treated variables, e.g. any lowercase string, precludes the attack in an unpatched psql .\n\nThe PostgreSQL project thanks Nick Cleaton for reporting this problem.", "first_published": "2020-11-12", "fixed_version": "13.1"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 49, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}