{"already_in_source_count":0,"candidate_count":49,"cross_major":false,"cve_available":true,"cve_count":3,"cves":[{"affected":{"10":"10","11":"11","12":"12","13":"13","9.5":"9.5","9.6":"9.6"},"component":"core server","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":{"10":"10.15","11":"11.10","12":"12.5","13":"13.1","9.5":"9.5.24","9.6":"9.6.20"},"fixed_version":"13.1","id":"CVE-2020-25695","introduced":{},"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"},"score":8.8,"title":"禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器","url":"https://www.postgresql.org/support/security/CVE-2020-25695/","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":"client","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":{"10":"10.15","11":"11.10","12":"12.5","13":"13.1","9.5":"9.5.24","9.6":"9.6.20"},"fixed_version":"13.1","id":"CVE-2020-25694","introduced":{},"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"},"score":8.1,"title":"修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用","url":"https://www.postgresql.org/support/security/CVE-2020-25694/","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","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":{"10":"10.15","11":"11.10","12":"12.5","13":"13.1","9.5":"9.5.24","9.6":"9.6.20"},"fixed_version":"13.1","id":"CVE-2020-25696","introduced":{},"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"},"score":7.5,"title":"防止 psql 的 \\gset 命令修改具有特殊处理方式的变量","url":"https://www.postgresql.org/support/security/CVE-2020-25696/","vector":"AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H"}],"duplicate_count":0,"excluded_count":0,"exclusions":[],"from_release":null,"groups":[{"age_days":2159,"build":"13.1","changes_count":49,"compatibility_count":0,"content_hash":"936bd11af40024c64f514899165fe18414f80a8d49504265870defa167ab842e","date":"2020-11-12","date_text":"2020-11-12","doc_git":"","doc_loaded_at":"2026-09-26T02:56:40.428744","entries":[{"also_in":[],"category":"security","category_label":"Security","commit_aliases":["0c3185e96","43ebfea5a","ac8f6243c","aefc625de","c90c84b3f","f97ecea1e","ff3de4c21"],"commit_groups":[["0c3185e96","43ebfea5a","ac8f6243c","aefc625de","c90c84b3f","f97ecea1e","ff3de4c21"]],"commits":["c90c84b3f"],"cves":["CVE-2020-25695"],"db_id":"d25e683f09292446d7a493aa4076cf0a","html":"\u003cp\u003e禁止在索引表达式和物化视图查询中执行 \u003ccode\u003eDECLARE CURSOR ... WITH HOLD\u003c/code\u003e 以及触发延迟触发器（Noah Misch）\u003ca href=\"https://postgr.es/c/c90c84b3f\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这实际上是\u003cspan\u003e“\u003cspan\u003e安全受限操作\u003c/span\u003e”\u003c/span\u003e沙箱机制中的一个漏洞。有权创建非临时 SQL 对象的攻击者可以利用此漏洞，以超级用户身份执行任意 SQL 代码。\u003c/p\u003e\n\u003cp\u003e\u003cspan\u003ePostgreSQL\u003c/span\u003e 项目感谢 Etienne Stalmans 报告此问题。（CVE-2020-25695）\u003c/p\u003e","id":"13.1-72b4bd56189200a8","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)","part":"changes","patch_ids":["e898d0dfc6b33d9b63abd3fb0e8b1a11"],"related_changes":[{"db_id":"754d0fa35c630453e7e8be4195e0d8a5","evidence":{"patch_ids":["e898d0dfc6b33d9b63abd3fb0e8b1a11"],"same_day":true,"statement_hash":"2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器","url":"/docs/compare/?release=12.5#12.5-58ffc2453b836b7c","version":"12.5"},{"db_id":"27b2bc4c97af3cc7f3e3232b22c140cb","evidence":{"patch_ids":["e898d0dfc6b33d9b63abd3fb0e8b1a11"],"same_day":true,"statement_hash":"2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器","url":"/docs/compare/?release=11.10#11.10-30b9a257c6e59de0","version":"11.10"},{"db_id":"c1e18d9b246a26244718162c48be2564","evidence":{"patch_ids":["e898d0dfc6b33d9b63abd3fb0e8b1a11"],"same_day":true,"statement_hash":"2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器","url":"/docs/compare/?release=10.15#10.15-30b9a257c6e59de0","version":"10.15"},{"db_id":"32a38be39164587561246274bce57c11","evidence":{"patch_ids":["e898d0dfc6b33d9b63abd3fb0e8b1a11"],"same_day":true,"statement_hash":"2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器","url":"/docs/compare/?release=9.6.20#9.6.20-30b9a257c6e59de0","version":"9.6.20"},{"db_id":"b80a99246721d0a6d0290a38f05221c7","evidence":{"patch_ids":["e898d0dfc6b33d9b63abd3fb0e8b1a11"],"same_day":true,"statement_hash":"2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器","url":"/docs/compare/?release=9.5.24#9.5.24-30b9a257c6e59de0","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["e898d0dfc6b33d9b63abd3fb0e8b1a11"],"same_day":true,"statement_hash":"2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"},"rule":2,"target":"27b2bc4c97af3cc7f3e3232b22c140cb","type":"equivalent"},{"evidence":{"patch_ids":["e898d0dfc6b33d9b63abd3fb0e8b1a11"],"same_day":true,"statement_hash":"2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"},"rule":2,"target":"32a38be39164587561246274bce57c11","type":"equivalent"},{"evidence":{"patch_ids":["e898d0dfc6b33d9b63abd3fb0e8b1a11"],"same_day":true,"statement_hash":"2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"},"rule":2,"target":"754d0fa35c630453e7e8be4195e0d8a5","type":"equivalent"},{"evidence":{"patch_ids":["e898d0dfc6b33d9b63abd3fb0e8b1a11"],"same_day":true,"statement_hash":"2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"},"rule":2,"target":"b80a99246721d0a6d0290a38f05221c7","type":"equivalent"},{"evidence":{"patch_ids":["e898d0dfc6b33d9b63abd3fb0e8b1a11"],"same_day":true,"statement_hash":"2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24"},"rule":2,"target":"c1e18d9b246a26244718162c48be2564","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["c90c84b3f"],"source_entry_id":"13.1/changes/001","source_hash":"b2c664caffc6f6b4309f84a0f862d042dd0304c3decbe6f648f367300a767d0f","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"2795b2a9007ce3ac53806d982078b9bd14dcfd9c5923177aaaf24805ed203d24","text":"禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器（Noah Misch）§ 这实际上是“安全受限操作”沙箱机制中的一个漏洞。有权创建非临时 SQL 对象的攻击者可以利用此漏洞，以超级用户身份执行任意 SQL 代码。 PostgreSQL 项目感谢 Etienne Stalmans 报告此问题。（CVE-2020-25695）","title":"禁止在索引表达式和物化视图查询中执行 DECLARE CURSOR ... WITH HOLD 以及触发延迟触发器","variants":[],"version":"13.1"},{"also_in":[],"category":"security","category_label":"Security","commit_aliases":["1738a61c8","1814f915b","1888ff8d0","56b46d3a1","5a9f99bed","5c78f7977","68f236993","7c154f2fd","8e5793ab6","a45bc8a4f","c6d0b9b16","cb8885ac4","da129a04a","fb93f784f"],"commit_groups":[["1738a61c8","1888ff8d0","56b46d3a1","7c154f2fd","a45bc8a4f","cb8885ac4","fb93f784f"],["1814f915b","5a9f99bed","5c78f7977","68f236993","8e5793ab6","c6d0b9b16","da129a04a"]],"commits":["1814f915b","cb8885ac4"],"cves":["CVE-2020-25694"],"db_id":"90054100695610cba1c4a6aabb36f9c6","html":"\u003cp\u003e修复 \u003cspan\u003epg_dump\u003c/span\u003e、\u003cspan\u003epg_restore\u003c/span\u003e、\u003cspan\u003eclusterdb\u003c/span\u003e、\u003cspan\u003ereindexdb\u003c/span\u003e 和 \u003cspan\u003evacuumdb\u003c/span\u003e 对复杂连接字符串参数的使用（Tom Lane）\u003ca href=\"https://postgr.es/c/cb8885ac4\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/1814f915b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cspan\u003epg_dump\u003c/span\u003e 和 \u003cspan\u003epg_restore\u003c/span\u003e 的 \u003ccode\u003e-d\u003c/code\u003e 参数，以及其他上述程序的 \u003ccode\u003e--maintenance-db\u003c/code\u003e 参数，可以是包含多个连接参数的\u003cspan\u003e“\u003cspan\u003e连接字符串\u003c/span\u003e”\u003c/span\u003e，而不仅仅是数据库名称。当这些程序需要发起额外连接时，例如进行并行处理或处理多个数据库时，连接字符串会被遗忘，额外连接只会使用基本连接参数（数据库名称、主机、端口和用户名）。如果连接字符串包含其他必要信息，例如非默认的 SSL 或 GSS 参数，这可能导致连接失败。更糟的是，连接可能成功建立，却未按预期加密，或者可能遭受本应由指定连接参数防止的中间人攻击。（CVE-2020-25694）\u003c/p\u003e","id":"13.1-1006a71ccc1ec016","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)","part":"changes","patch_ids":["6bb19578ad8feb3e68071169a6f567c0","fa0aac08719ba7654ad9ab2529d63d8c"],"related_changes":[{"db_id":"6cffdf59a39c1e1204d363f316c25012","evidence":{"patch_ids":["6bb19578ad8feb3e68071169a6f567c0","fa0aac08719ba7654ad9ab2529d63d8c"],"same_day":true,"statement_hash":"13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用","url":"/docs/compare/?release=12.5#12.5-66ca83b99f74f9b0","version":"12.5"},{"db_id":"c5c358c8bfcf2af40a3f744b066dfe37","evidence":{"patch_ids":["6bb19578ad8feb3e68071169a6f567c0","fa0aac08719ba7654ad9ab2529d63d8c"],"same_day":true,"statement_hash":"13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用","url":"/docs/compare/?release=11.10#11.10-f5695ef1c79fd91e","version":"11.10"},{"db_id":"f99483c0194bc236cd796fb70849abb1","evidence":{"patch_ids":["6bb19578ad8feb3e68071169a6f567c0","fa0aac08719ba7654ad9ab2529d63d8c"],"same_day":true,"statement_hash":"13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"修复 pg_dump、pg_restore、clusterdb、reindexdb 和 vacuumdb 对复杂连接字符串参数的使用","url":"/docs/compare/?release=10.15#10.15-f5695ef1c79fd91e","version":"10.15"},{"db_id":"9bb37934f19a023764ee700751964c41","evidence":{"patch_ids":["6bb19578ad8feb3e68071169a6f567c0","fa0aac08719ba7654ad9ab2529d63d8c"],"same_day":true,"statement_hash":"13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"修复 pg_dump、pg_restore、 clusterdb、reindexdb 和 vacuumdb 中复杂连接字符串参数的用法","url":"/docs/compare/?release=9.6.20#9.6.20-be5bff9c020a9205","version":"9.6.20"},{"db_id":"bd180bdbb3017b36871742d1753f820f","evidence":{"patch_ids":["6bb19578ad8feb3e68071169a6f567c0","fa0aac08719ba7654ad9ab2529d63d8c"],"same_day":true,"statement_hash":"13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"修复 pg_dump、pg_restore、 clusterdb、reindexdb 和 vacuumdb 中复杂连接字符串参数的用法","url":"/docs/compare/?release=9.5.24#9.5.24-be5bff9c020a9205","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["6bb19578ad8feb3e68071169a6f567c0","fa0aac08719ba7654ad9ab2529d63d8c"],"same_day":true,"statement_hash":"13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"},"rule":2,"target":"6cffdf59a39c1e1204d363f316c25012","type":"equivalent"},{"evidence":{"patch_ids":["6bb19578ad8feb3e68071169a6f567c0","fa0aac08719ba7654ad9ab2529d63d8c"],"same_day":true,"statement_hash":"13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"},"rule":2,"target":"9bb37934f19a023764ee700751964c41","type":"equivalent"},{"evidence":{"patch_ids":["6bb19578ad8feb3e68071169a6f567c0","fa0aac08719ba7654ad9ab2529d63d8c"],"same_day":true,"statement_hash":"13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"},"rule":2,"target":"bd180bdbb3017b36871742d1753f820f","type":"equivalent"},{"evidence":{"patch_ids":["6bb19578ad8feb3e68071169a6f567c0","fa0aac08719ba7654ad9ab2529d63d8c"],"same_day":true,"statement_hash":"13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"},"rule":2,"target":"c5c358c8bfcf2af40a3f744b066dfe37","type":"equivalent"},{"evidence":{"patch_ids":["6bb19578ad8feb3e68071169a6f567c0","fa0aac08719ba7654ad9ab2529d63d8c"],"same_day":true,"statement_hash":"13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa"},"rule":2,"target":"f99483c0194bc236cd796fb70849abb1","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["1814f915b","cb8885ac4"],"source_entry_id":"13.1/changes/002","source_hash":"82597eafb5f4d905bbbc7fd3959b35370ff78c4d1dd038c68adbd3cbd60f18b1","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"13dd9012ccb980ba0dc19dbfbac853d5d28f338cd1f8e71e056527777c0793aa","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 对复杂连接字符串参数的使用","variants":[],"version":"13.1"},{"also_in":[],"category":"security","category_label":"Security","commit_aliases":["20be76d5c","2e4af4110","6997da09a","8175da6e7","85c54287a","870a23230","f656517ec"],"commit_groups":[["20be76d5c","2e4af4110","6997da09a","8175da6e7","85c54287a","870a23230","f656517ec"]],"commits":["2e4af4110"],"cves":["CVE-2020-25694"],"db_id":"33dcaa91db9a340ad489a4dab2bf38de","html":"\u003cp\u003e当 \u003cspan\u003epsql\u003c/span\u003e 的 \u003ccode\u003e\\connect\u003c/code\u003e 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数（Tom Lane）\u003ca href=\"https://postgr.es/c/2e4af4110\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这可以避免因遗漏相关参数（例如非默认的 SSL 或 GSS 选项）而导致重新连接失败。更糟的情况是，重新连接可能成功，却未按预期加密，或者可能遭受本应由指定连接参数防止的中间人攻击。这与刚才提到的 \u003cspan\u003epg_dump\u003c/span\u003e 等程序的问题基本相同，只是 \u003cspan\u003epsql\u003c/span\u003e 的行为更复杂，因为用户可能有意覆盖某些连接参数。（CVE-2020-25694）\u003c/p\u003e","id":"13.1-f1badba1aaec4ac5","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)","part":"changes","patch_ids":["f12917222401547fc494ff9ed23244f8"],"related_changes":[{"db_id":"504ed64a289c20845de663a4c9b24733","evidence":{"patch_ids":["f12917222401547fc494ff9ed23244f8"],"same_day":true,"statement_hash":"c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数","url":"/docs/compare/?release=12.5#12.5-3c25610dd990145e","version":"12.5"},{"db_id":"048a4d116a491d8b2e54c00d82075af2","evidence":{"patch_ids":["f12917222401547fc494ff9ed23244f8"],"same_day":true,"statement_hash":"c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数","url":"/docs/compare/?release=11.10#11.10-58b05f4e0090a9b5","version":"11.10"},{"db_id":"9c07eaa4cc364eeece248d77060d68a6","evidence":{"patch_ids":["f12917222401547fc494ff9ed23244f8"],"same_day":true,"statement_hash":"c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数","url":"/docs/compare/?release=10.15#10.15-58b05f4e0090a9b5","version":"10.15"},{"db_id":"09d652b358d89152448ded204db7f698","evidence":{"patch_ids":["f12917222401547fc494ff9ed23244f8"],"same_day":true,"statement_hash":"c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"当 psql 的 \\connect 命令复用连接参数时，确保先前连接字符串中所有未被覆盖的参数都被复用","url":"/docs/compare/?release=9.6.20#9.6.20-1512bab65015e57b","version":"9.6.20"},{"db_id":"eb6bb7847df32de22ae4279f01bac757","evidence":{"patch_ids":["f12917222401547fc494ff9ed23244f8"],"same_day":true,"statement_hash":"c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"当 psql 的 \\connect 命令复用连接参数时，确保先前连接字符串中所有未被覆盖的参数都被复用","url":"/docs/compare/?release=9.5.24#9.5.24-1512bab65015e57b","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["f12917222401547fc494ff9ed23244f8"],"same_day":true,"statement_hash":"c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"},"rule":2,"target":"048a4d116a491d8b2e54c00d82075af2","type":"equivalent"},{"evidence":{"patch_ids":["f12917222401547fc494ff9ed23244f8"],"same_day":true,"statement_hash":"c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"},"rule":2,"target":"09d652b358d89152448ded204db7f698","type":"equivalent"},{"evidence":{"patch_ids":["f12917222401547fc494ff9ed23244f8"],"same_day":true,"statement_hash":"c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"},"rule":2,"target":"504ed64a289c20845de663a4c9b24733","type":"equivalent"},{"evidence":{"patch_ids":["f12917222401547fc494ff9ed23244f8"],"same_day":true,"statement_hash":"c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"},"rule":2,"target":"9c07eaa4cc364eeece248d77060d68a6","type":"equivalent"},{"evidence":{"patch_ids":["f12917222401547fc494ff9ed23244f8"],"same_day":true,"statement_hash":"c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af"},"rule":2,"target":"eb6bb7847df32de22ae4279f01bac757","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["2e4af4110"],"source_entry_id":"13.1/changes/003","source_hash":"5cb2851939fc7aaa2d8240144dc9ed134c890628bd03fe1284d4d70a67cfe2ab","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"c429c25e5fedc5fe9b57bbe1c06653278c0be6639212de7e0e29caca1239c8af","text":"当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数（Tom Lane）§ 这可以避免因遗漏相关参数（例如非默认的 SSL 或 GSS 选项）而导致重新连接失败。更糟的情况是，重新连接可能成功，却未按预期加密，或者可能遭受本应由指定连接参数防止的中间人攻击。这与刚才提到的 pg_dump 等程序的问题基本相同，只是 psql 的行为更复杂，因为用户可能有意覆盖某些连接参数。（CVE-2020-25694）","title":"当 psql 的 \\connect 命令复用连接参数时，确保复用先前连接字符串中所有未被覆盖的参数","variants":[],"version":"13.1"},{"also_in":[],"category":"security","category_label":"Security","commit_aliases":["098fb0079","12fd81cb7","3855e5b47","67029845b","7b356c78f","a498db87b","a54dfbee1"],"commit_groups":[["098fb0079","12fd81cb7","3855e5b47","67029845b","7b356c78f","a498db87b","a54dfbee1"]],"commits":["67029845b"],"cves":["CVE-2020-25696"],"db_id":"ed15ca1feec24d6238cd80fae70f0817","html":"\u003cp\u003e防止 \u003cspan\u003epsql\u003c/span\u003e 的 \u003ccode\u003e\\gset\u003c/code\u003e 命令修改具有特殊处理方式的变量（Noah Misch）\u003ca href=\"https://postgr.es/c/67029845b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e不带前缀的 \u003ccode\u003e\\gset\u003c/code\u003e 会覆盖服务器要求其设置的任何变量。因此，被攻陷的服务器可以设置 \u003ccode\u003ePROMPT1\u003c/code\u003e 等受到特殊处理的变量，从而能够在用户会话中执行任意 shell 代码。\u003c/p\u003e\n\u003cp\u003e\u003cspan\u003ePostgreSQL\u003c/span\u003e 项目感谢 Nick Cleaton 报告此问题。（CVE-2020-25696）\u003c/p\u003e","id":"13.1-9070105c8a130c54","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)","part":"changes","patch_ids":["e7d80384f9cb93cf2c18f344e115c1c5"],"related_changes":[{"db_id":"684e218336a5bfa28d8f2dfa9d6632e6","evidence":{"patch_ids":["e7d80384f9cb93cf2c18f344e115c1c5"],"same_day":true,"statement_hash":"5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"防止 psql 的 \\gset 命令修改具有特殊处理方式的变量","url":"/docs/compare/?release=12.5#12.5-729d850c2da92e5e","version":"12.5"},{"db_id":"5a10d3cd862859a12f76a3057dc3036d","evidence":{"patch_ids":["e7d80384f9cb93cf2c18f344e115c1c5"],"same_day":true,"statement_hash":"5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"防止 psql 的 \\gset 命令修改具有特殊处理方式的变量","url":"/docs/compare/?release=11.10#11.10-05f33833ef6a810b","version":"11.10"},{"db_id":"048000d3411816dd2fc965b0cd624522","evidence":{"patch_ids":["e7d80384f9cb93cf2c18f344e115c1c5"],"same_day":true,"statement_hash":"5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"防止 psql 的 \\gset 命令修改具有特殊处理方式的变量","url":"/docs/compare/?release=10.15#10.15-05f33833ef6a810b","version":"10.15"},{"db_id":"370feb049d035ea22d0a1524d0be1028","evidence":{"patch_ids":["e7d80384f9cb93cf2c18f344e115c1c5"],"same_day":true,"statement_hash":"5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"防止 psql 的 \\gset 命令修改特殊处理的变量","url":"/docs/compare/?release=9.6.20#9.6.20-1f21dcb4d2e98063","version":"9.6.20"},{"db_id":"435fccf471fec61c697ec3f4e10aac11","evidence":{"patch_ids":["e7d80384f9cb93cf2c18f344e115c1c5"],"same_day":true,"statement_hash":"5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"防止 psql 的 \\gset 命令修改特殊处理的变量","url":"/docs/compare/?release=9.5.24#9.5.24-1f21dcb4d2e98063","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["e7d80384f9cb93cf2c18f344e115c1c5"],"same_day":true,"statement_hash":"5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"},"rule":2,"target":"048000d3411816dd2fc965b0cd624522","type":"equivalent"},{"evidence":{"patch_ids":["e7d80384f9cb93cf2c18f344e115c1c5"],"same_day":true,"statement_hash":"5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"},"rule":2,"target":"370feb049d035ea22d0a1524d0be1028","type":"equivalent"},{"evidence":{"patch_ids":["e7d80384f9cb93cf2c18f344e115c1c5"],"same_day":true,"statement_hash":"5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"},"rule":2,"target":"435fccf471fec61c697ec3f4e10aac11","type":"equivalent"},{"evidence":{"patch_ids":["e7d80384f9cb93cf2c18f344e115c1c5"],"same_day":true,"statement_hash":"5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"},"rule":2,"target":"5a10d3cd862859a12f76a3057dc3036d","type":"equivalent"},{"evidence":{"patch_ids":["e7d80384f9cb93cf2c18f344e115c1c5"],"same_day":true,"statement_hash":"5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576"},"rule":2,"target":"684e218336a5bfa28d8f2dfa9d6632e6","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["67029845b"],"source_entry_id":"13.1/changes/004","source_hash":"73d527ca65cc6ffafc212854e1d0371dad353cd0470f5e080b484c7f654c425b","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"5eecb4487916b732023d7b29b21dff0bacb46f067826f409f98fd30f36abb576","text":"防止 psql 的 \\gset 命令修改具有特殊处理方式的变量（Noah Misch）§ 不带前缀的 \\gset 会覆盖服务器要求其设置的任何变量。因此，被攻陷的服务器可以设置 PROMPT1 等受到特殊处理的变量，从而能够在用户会话中执行任意 shell 代码。 PostgreSQL 项目感谢 Nick Cleaton 报告此问题。（CVE-2020-25696）","title":"防止 psql 的 \\gset 命令修改具有特殊处理方式的变量","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["4e9821b6f","72e43fc31","7f4708818","9f783aea6"],"commit_groups":[["4e9821b6f","72e43fc31"],["7f4708818","9f783aea6"]],"commits":["72e43fc31","9f783aea6"],"cves":[],"db_id":"5f1fab75f13ea2b53eef37ac55302623","html":"\u003cp\u003e修复对复制协议的意外破坏（Álvaro Herrera）\u003ca href=\"https://postgr.es/c/72e43fc31\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/9f783aea6\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWAL 发送进程会为 \u003ccode\u003eSTART_REPLICATION\u003c/code\u003e 报告两个命令完成事件。这没有文档记录，而且显然并非有意为之，因此我们没有注意到 13.0 后期的一项修改移除了重复事件。然而，事实证明，WAL 接收进程在某些代码路径中需要这个额外事件。最实际的修复方式是将该额外事件规定为协议的一部分，并恢复生成它。\u003c/p\u003e","id":"13.1-a2b4c620ddcb9507","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.","part":"changes","patch_ids":["46d95b143639f4a2dc4e5b2c04bad243","6d24b4c9f696cbeec61c654294430e4d"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["72e43fc31","9f783aea6"],"source_entry_id":"13.1/changes/005","source_hash":"83d57ccc1a1cf4f409a0a330cb1bbf16578102a39d1e6f7109b474545d1fb789","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"bc8a920d81bad6efc165a546c3ff0d39bd4b240849e586f9a33b59c391b3c9f1","text":"修复对复制协议的意外破坏（Álvaro Herrera）§ § WAL 发送进程会为 START_REPLICATION 报告两个命令完成事件。这没有文档记录，而且显然并非有意为之，因此我们没有注意到 13.0 后期的一项修改移除了重复事件。然而，事实证明，WAL 接收进程在某些代码路径中需要这个额外事件。最实际的修复方式是将该额外事件规定为协议的一部分，并恢复生成它。","title":"修复对复制协议的意外破坏","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["052014a20","23d8b3577","7664cc869","aca74843e","c5a5bd0bb","d38e15979","dd36d6b00"],"commit_groups":[["052014a20","23d8b3577","7664cc869","aca74843e","c5a5bd0bb","d38e15979","dd36d6b00"]],"commits":["052014a20"],"cves":[],"db_id":"b06ef39e998c1dc910700de06c681e9a","html":"\u003cp\u003e确保在检查点期间对 SLRU 目录正确执行 fsync（Thomas Munro）\u003ca href=\"https://postgr.es/c/052014a20\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这可以防止后续操作系统崩溃时可能发生的数据丢失。\u003c/p\u003e","id":"13.1-fdad27ed414f6e2a","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.","part":"changes","patch_ids":["a2c4e9bfb6dc7d28acd67d5e9096d0d3"],"related_changes":[{"db_id":"4eccc1a2390eb87494a76e3a5985f5d3","evidence":{"patch_ids":["a2c4e9bfb6dc7d28acd67d5e9096d0d3"],"same_day":true,"statement_hash":"fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"确保在检查点期间对 SLRU 目录正确执行 fsync","url":"/docs/compare/?release=12.5#12.5-3775a45a913e90e4","version":"12.5"},{"db_id":"fb47558544b98f8abc71ea371925ccce","evidence":{"patch_ids":["a2c4e9bfb6dc7d28acd67d5e9096d0d3"],"same_day":true,"statement_hash":"fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"确保在检查点期间对 SLRU 目录正确执行 fsync","url":"/docs/compare/?release=11.10#11.10-ad98622e2349a742","version":"11.10"},{"db_id":"5be2e7c4790799ca4c539a2d54536a91","evidence":{"patch_ids":["a2c4e9bfb6dc7d28acd67d5e9096d0d3"],"same_day":true,"statement_hash":"fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"确保在检查点期间对 SLRU 目录正确执行 fsync","url":"/docs/compare/?release=10.15#10.15-ad98622e2349a742","version":"10.15"},{"db_id":"aa4a15ce9bf437e318685c548b299a9b","evidence":{"patch_ids":["a2c4e9bfb6dc7d28acd67d5e9096d0d3"],"same_day":true,"statement_hash":"fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"确保检查点期间正确 fsync SLRU 目录","url":"/docs/compare/?release=9.6.20#9.6.20-d68c2334c7420742","version":"9.6.20"},{"db_id":"80cc9ce2bd43fa57595f97e3853bcd2c","evidence":{"patch_ids":["a2c4e9bfb6dc7d28acd67d5e9096d0d3"],"same_day":true,"statement_hash":"fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"确保检查点期间正确 fsync SLRU 目录","url":"/docs/compare/?release=9.5.24#9.5.24-d68c2334c7420742","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["a2c4e9bfb6dc7d28acd67d5e9096d0d3"],"same_day":true,"statement_hash":"fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"},"rule":2,"target":"4eccc1a2390eb87494a76e3a5985f5d3","type":"equivalent"},{"evidence":{"patch_ids":["a2c4e9bfb6dc7d28acd67d5e9096d0d3"],"same_day":true,"statement_hash":"fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"},"rule":2,"target":"5be2e7c4790799ca4c539a2d54536a91","type":"equivalent"},{"evidence":{"patch_ids":["a2c4e9bfb6dc7d28acd67d5e9096d0d3"],"same_day":true,"statement_hash":"fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"},"rule":2,"target":"80cc9ce2bd43fa57595f97e3853bcd2c","type":"equivalent"},{"evidence":{"patch_ids":["a2c4e9bfb6dc7d28acd67d5e9096d0d3"],"same_day":true,"statement_hash":"fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"},"rule":2,"target":"aa4a15ce9bf437e318685c548b299a9b","type":"equivalent"},{"evidence":{"patch_ids":["a2c4e9bfb6dc7d28acd67d5e9096d0d3"],"same_day":true,"statement_hash":"fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7"},"rule":2,"target":"fb47558544b98f8abc71ea371925ccce","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["052014a20"],"source_entry_id":"13.1/changes/006","source_hash":"12dfc5e5a3996a0e1510b4ddaa08cffd700f6174a32341e04a3a8187d0cae44e","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"fccebdc7516b398ea8dca003a5f4ce75d9a565c46bd658c74e04807ecda7c7d7","text":"确保在检查点期间对 SLRU 目录正确执行 fsync（Thomas Munro）§ 这可以防止后续操作系统崩溃时可能发生的数据丢失。","title":"确保在检查点期间对 SLRU 目录正确执行 fsync","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["04c4b495b","136f87ea5","501035a0a","768dbef0d","77df80cf6","d907bd054","df4405b78"],"commit_groups":[["04c4b495b","136f87ea5","501035a0a","768dbef0d","77df80cf6","d907bd054","df4405b78"]],"commits":["768dbef0d"],"cves":[],"db_id":"06b53ae97a656f0644b54f91e35132a5","html":"\u003cp\u003e修复对具有 \u003ccode\u003eBYPASSRLS\u003c/code\u003e 属性的用户执行 \u003ccode\u003eALTER ROLE\u003c/code\u003e 的行为（Tom Lane，Stephen Frost）\u003ca href=\"https://postgr.es/c/768dbef0d\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e只有超级用户才可以修改 \u003ccode\u003eBYPASSRLS\u003c/code\u003e 属性，但其他 \u003ccode\u003eALTER ROLE\u003c/code\u003e 操作（例如修改密码）应该只需通过普通权限检查就可以执行。之前的代码错误地将对此类角色的所有修改都限制为只能由超级用户执行。\u003c/p\u003e","id":"13.1-6a8c8bd73d0aa902","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.","part":"changes","patch_ids":["00d5c0db091c94703a53f07d4d0b3805"],"related_changes":[{"db_id":"a28441cf5f6775c071a4dad86f50a92e","evidence":{"patch_ids":["00d5c0db091c94703a53f07d4d0b3805"],"same_day":true,"statement_hash":"da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为","url":"/docs/compare/?release=12.5#12.5-f0bc8a0333a4e23a","version":"12.5"},{"db_id":"b24cf385ec511257e1ddab3e66318c0c","evidence":{"patch_ids":["00d5c0db091c94703a53f07d4d0b3805"],"same_day":true,"statement_hash":"da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为","url":"/docs/compare/?release=11.10#11.10-5d13bdf0c7f3f783","version":"11.10"},{"db_id":"98a5b51b9a41924b4e3b062a26969ef6","evidence":{"patch_ids":["00d5c0db091c94703a53f07d4d0b3805"],"same_day":true,"statement_hash":"da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为","url":"/docs/compare/?release=10.15#10.15-5d13bdf0c7f3f783","version":"10.15"},{"db_id":"940ff717682ea460b74a4952e333f1ed","evidence":{"patch_ids":["00d5c0db091c94703a53f07d4d0b3805"],"same_day":true,"statement_hash":"da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"修复对具有 BYPASSRLS 属性的用户的 ALTER ROLE","url":"/docs/compare/?release=9.6.20#9.6.20-893176c27ae69b2f","version":"9.6.20"},{"db_id":"8af3f6b3b1924b7f80369eb22d67b422","evidence":{"patch_ids":["00d5c0db091c94703a53f07d4d0b3805"],"same_day":true,"statement_hash":"da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"修复对具有 BYPASSRLS 属性的用户的 ALTER ROLE","url":"/docs/compare/?release=9.5.24#9.5.24-893176c27ae69b2f","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["00d5c0db091c94703a53f07d4d0b3805"],"same_day":true,"statement_hash":"da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"},"rule":2,"target":"8af3f6b3b1924b7f80369eb22d67b422","type":"equivalent"},{"evidence":{"patch_ids":["00d5c0db091c94703a53f07d4d0b3805"],"same_day":true,"statement_hash":"da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"},"rule":2,"target":"940ff717682ea460b74a4952e333f1ed","type":"equivalent"},{"evidence":{"patch_ids":["00d5c0db091c94703a53f07d4d0b3805"],"same_day":true,"statement_hash":"da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"},"rule":2,"target":"98a5b51b9a41924b4e3b062a26969ef6","type":"equivalent"},{"evidence":{"patch_ids":["00d5c0db091c94703a53f07d4d0b3805"],"same_day":true,"statement_hash":"da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"},"rule":2,"target":"a28441cf5f6775c071a4dad86f50a92e","type":"equivalent"},{"evidence":{"patch_ids":["00d5c0db091c94703a53f07d4d0b3805"],"same_day":true,"statement_hash":"da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b"},"rule":2,"target":"b24cf385ec511257e1ddab3e66318c0c","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["768dbef0d"],"source_entry_id":"13.1/changes/007","source_hash":"c25484ba3292c2a94042cb347acc4bade82a12706fe4a4a26dddee1c52f79649","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"da729e238f401c4c2b990b4546d0f2abcba78f227e69a9f94d553e767c8ec67b","text":"修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为（Tom Lane，Stephen Frost）§ 只有超级用户才可以修改 BYPASSRLS 属性，但其他 ALTER ROLE 操作（例如修改密码）应该只需通过普通权限检查就可以执行。之前的代码错误地将对此类角色的所有修改都限制为只能由超级用户执行。","title":"修复对具有 BYPASSRLS 属性的用户执行 ALTER ROLE 的行为","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["539775981","bf797a8d9"],"commit_groups":[["539775981","bf797a8d9"]],"commits":["539775981"],"cves":[],"db_id":"82f5a774a3c40a9372807061c7faa8c6","html":"\u003cp\u003e存在子表时，禁止 \u003ccode\u003eALTER TABLE ONLY ... DROP EXPRESSION\u003c/code\u003e（Peter Eisentraut）\u003ca href=\"https://postgr.es/c/539775981\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e当前实现无法正确处理这种情况，因此暂时将其禁止。\u003c/p\u003e","id":"13.1-21cf4de2705c5da7","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.","part":"changes","patch_ids":["3c6a0d1fcaf1215d9365c23e1b2585c3"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["539775981"],"source_entry_id":"13.1/changes/008","source_hash":"f072d511268dcffe9a888b2aa22dc49a84f59dda4c34a0d6d4324ceac45262ce","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"173323363f259c1951824729f74e7ef886c44d3ee9cf15183818643645b350ec","text":"存在子表时，禁止 ALTER TABLE ONLY ... DROP EXPRESSION（Peter Eisentraut）§ 当前实现无法正确处理这种情况，因此暂时将其禁止。","title":"存在子表时，禁止 ALTER TABLE ONLY ... DROP EXPRESSION","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["0e6b6f8c7","5f6463a20","a795f6782","bbb927b4d"],"commit_groups":[["0e6b6f8c7","5f6463a20","a795f6782","bbb927b4d"]],"commits":["5f6463a20"],"cves":[],"db_id":"bf73f5c2e8a4e1f58b85082ad644cebc","html":"\u003cp\u003e确保 \u003ccode\u003eALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER\u003c/code\u003e 不递归处理子表（Álvaro Herrera）\u003ca href=\"https://postgr.es/c/5f6463a20\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以前，\u003ccode\u003eONLY\u003c/code\u003e 标志被忽略了。\u003c/p\u003e","id":"13.1-c5abe79d94d21efe","identity_text":"Ensure that ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER does not recurse to child tables (Álvaro Herrera) Previously the ONLY flag was ignored.","part":"changes","patch_ids":["1486e5d11149ea7f531f38421c96e4ff"],"related_changes":[{"db_id":"515d920db83984a2310b61b5b956940b","evidence":{"patch_ids":["1486e5d11149ea7f531f38421c96e4ff"],"same_day":true,"statement_hash":"b56964d028fb509b948d0a9544dc895c0ade294a5bb1fe7004886f033aa8dbbb"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"确保 ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER 不递归处理子表","url":"/docs/compare/?release=12.5#12.5-fa55f3abcfa7ae19","version":"12.5"},{"db_id":"0d4143e62367e577a2a5a494c6456a70","evidence":{"patch_ids":["1486e5d11149ea7f531f38421c96e4ff"],"same_day":true,"statement_hash":"b56964d028fb509b948d0a9544dc895c0ade294a5bb1fe7004886f033aa8dbbb"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"确保 ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER 不递归处理子表","url":"/docs/compare/?release=11.10#11.10-dd58929a3ff96a33","version":"11.10"}],"relations":[{"evidence":{"patch_ids":["1486e5d11149ea7f531f38421c96e4ff"],"same_day":true,"statement_hash":"b56964d028fb509b948d0a9544dc895c0ade294a5bb1fe7004886f033aa8dbbb"},"rule":2,"target":"0d4143e62367e577a2a5a494c6456a70","type":"equivalent"},{"evidence":{"patch_ids":["1486e5d11149ea7f531f38421c96e4ff"],"same_day":true,"statement_hash":"b56964d028fb509b948d0a9544dc895c0ade294a5bb1fe7004886f033aa8dbbb"},"rule":2,"target":"515d920db83984a2310b61b5b956940b","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["5f6463a20"],"source_entry_id":"13.1/changes/009","source_hash":"5353b1e022eaff0d067c1cf284a939a569030d4b52797c4ff7066cb63e7914cc","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"b56964d028fb509b948d0a9544dc895c0ade294a5bb1fe7004886f033aa8dbbb","text":"确保 ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER 不递归处理子表（Álvaro Herrera）§ 以前，ONLY 标志被忽略了。","title":"确保 ALTER TABLE ONLY ... ENABLE/DISABLE TRIGGER 不递归处理子表","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["0bdf1ef3d","44b973b91","5b7bfc397","7dc18c619"],"commit_groups":[["0bdf1ef3d","44b973b91","5b7bfc397","7dc18c619"]],"commits":["44b973b91"],"cves":[],"db_id":"2d9a7d9cd258cf795bfe09ac728c2093","html":"\u003cp\u003e允许对自引用视图成功执行 \u003ccode\u003eLOCK TABLE\u003c/code\u003e（Tom Lane）\u003ca href=\"https://postgr.es/c/44b973b91\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以前会抛出关于无限递归的错误，但似乎没有必要禁止这种情况。\u003c/p\u003e","id":"13.1-658bba060786a9be","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.","part":"changes","patch_ids":["e80a6d62a308549fca3dca43cf214e58"],"related_changes":[{"db_id":"b18cca0fe5884749592bcb9c306e8ed8","evidence":{"patch_ids":["e80a6d62a308549fca3dca43cf214e58"],"same_day":true,"statement_hash":"c48c786d6aefa3b2ef2bde9f2098ebab17fa00b0da9d6978ef895b89fb823222"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"允许对自引用视图成功执行 LOCK TABLE","url":"/docs/compare/?release=12.5#12.5-5c8f797b238b95d5","version":"12.5"},{"db_id":"3935a2bfda3c217a89c73379e751c30f","evidence":{"patch_ids":["e80a6d62a308549fca3dca43cf214e58"],"same_day":true,"statement_hash":"c48c786d6aefa3b2ef2bde9f2098ebab17fa00b0da9d6978ef895b89fb823222"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"允许对自引用视图成功执行 LOCK TABLE","url":"/docs/compare/?release=11.10#11.10-643801686120db2e","version":"11.10"}],"relations":[{"evidence":{"patch_ids":["e80a6d62a308549fca3dca43cf214e58"],"same_day":true,"statement_hash":"c48c786d6aefa3b2ef2bde9f2098ebab17fa00b0da9d6978ef895b89fb823222"},"rule":2,"target":"3935a2bfda3c217a89c73379e751c30f","type":"equivalent"},{"evidence":{"patch_ids":["e80a6d62a308549fca3dca43cf214e58"],"same_day":true,"statement_hash":"c48c786d6aefa3b2ef2bde9f2098ebab17fa00b0da9d6978ef895b89fb823222"},"rule":2,"target":"b18cca0fe5884749592bcb9c306e8ed8","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["44b973b91"],"source_entry_id":"13.1/changes/010","source_hash":"f74ac57b942a360f8a80bd00cdf175a53ab21df7dcf3b8006da2bd7a1b467de7","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"c48c786d6aefa3b2ef2bde9f2098ebab17fa00b0da9d6978ef895b89fb823222","text":"允许对自引用视图成功执行 LOCK TABLE（Tom Lane）§ 以前会抛出关于无限递归的错误，但似乎没有必要禁止这种情况。","title":"允许对自引用视图成功执行 LOCK TABLE","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["41a033b50","b17ff07aa","bb62df46b"],"commit_groups":[["41a033b50","b17ff07aa","bb62df46b"]],"commits":["bb62df46b"],"cves":[],"db_id":"968d3cde895dc97b388757887ad30210","html":"\u003cp\u003e在 \u003ccode\u003eREINDEX CONCURRENTLY\u003c/code\u003e 前后保留索引的统计信息（Michael Paquier，Fabrízio de Royes Mello）\u003ca href=\"https://postgr.es/c/bb62df46b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e非并发的索引重建一直会保留这些统计信息。\u003c/p\u003e","id":"13.1-98a14985b3433129","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.","part":"changes","patch_ids":["4616682d99b4a9614c6f50c95b8f9808"],"related_changes":[{"db_id":"6f499e8e479f0c4070ca4654bbffe8c5","evidence":{"patch_ids":["4616682d99b4a9614c6f50c95b8f9808"],"same_day":true,"statement_hash":"df824fc429752478a9fa50b60c52c5b43407e36003b5466d2f7642bb0dd5d8ab"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"在 REINDEX CONCURRENTLY 前后保留索引的统计信息","url":"/docs/compare/?release=12.5#12.5-aad9ec0f4672573e","version":"12.5"}],"relations":[{"evidence":{"patch_ids":["4616682d99b4a9614c6f50c95b8f9808"],"same_day":true,"statement_hash":"df824fc429752478a9fa50b60c52c5b43407e36003b5466d2f7642bb0dd5d8ab"},"rule":2,"target":"6f499e8e479f0c4070ca4654bbffe8c5","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["bb62df46b"],"source_entry_id":"13.1/changes/011","source_hash":"3e8c3ded49639c62c91557a95e2031b281eb778b052a568722481da5f3e84fd3","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"df824fc429752478a9fa50b60c52c5b43407e36003b5466d2f7642bb0dd5d8ab","text":"在 REINDEX CONCURRENTLY 前后保留索引的统计信息（Michael Paquier，Fabrízio de Royes Mello）§ 非并发的索引重建一直会保留这些统计信息。","title":"在 REINDEX CONCURRENTLY 前后保留索引的统计信息","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["1aedaba78","8aa4496dd","e66bcfb4c"],"commit_groups":[["1aedaba78","8aa4496dd","e66bcfb4c"]],"commits":["1aedaba78"],"cves":[],"db_id":"d16575197c7d14abb79c62c535df567e","html":"\u003cp\u003e修复 \u003ccode\u003eREINDEX CONCURRENTLY\u003c/code\u003e 不正确的进度报告（Matthias van de Meent，Michael Paquier）\u003ca href=\"https://postgr.es/c/1aedaba78\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-0e96463fff29e1d5","identity_text":"Fix incorrect progress reporting from REINDEX CONCURRENTLY (Matthias van de Meent, Michael Paquier)","part":"changes","patch_ids":["fabfbb2cf465b61381d034c7cdb3a182"],"related_changes":[{"db_id":"00194a467f52402b7f116f66c09d9471","evidence":{"patch_ids":["fabfbb2cf465b61381d034c7cdb3a182"],"same_day":true,"statement_hash":"f54fd3c370b012d2732fa3ccd7f5cb257a8732b8cf16252929406293df33d414"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复 REINDEX CONCURRENTLY 不正确的进度报告","url":"/docs/compare/?release=12.5#12.5-93ed92223ac87f9a","version":"12.5"}],"relations":[{"evidence":{"patch_ids":["fabfbb2cf465b61381d034c7cdb3a182"],"same_day":true,"statement_hash":"f54fd3c370b012d2732fa3ccd7f5cb257a8732b8cf16252929406293df33d414"},"rule":2,"target":"00194a467f52402b7f116f66c09d9471","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["1aedaba78"],"source_entry_id":"13.1/changes/012","source_hash":"0048f1807fb6582fc747e7a6cd74e4ba02a1098cb58e250a150e6501727d471c","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"f54fd3c370b012d2732fa3ccd7f5cb257a8732b8cf16252929406293df33d414","text":"修复 REINDEX CONCURRENTLY 不正确的进度报告（Matthias van de Meent，Michael Paquier）§","title":"修复 REINDEX CONCURRENTLY 不正确的进度报告","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["43330cdd4","70492195b","ad77039fa"],"commit_groups":[["43330cdd4","70492195b","ad77039fa"]],"commits":["70492195b"],"cves":[],"db_id":"a45fb8720bc700e17cab673f382333c0","html":"\u003cp\u003e确保通过规则或可更新视图更新 \u003ccode\u003eGENERATED\u003c/code\u003e 列所依赖的列时，生成列也得到更新（Tom Lane）\u003ca href=\"https://postgr.es/c/70492195b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e此修复还处理了在这些情况下可能未能触发特定列触发器的问题。\u003c/p\u003e","id":"13.1-b92d780874dfee1e","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.","part":"changes","patch_ids":["4eee3ee8c400465bab30b28c8d723ef0"],"related_changes":[{"db_id":"32954ad404f6b50f2e286068e3f41e5a","evidence":{"patch_ids":["4eee3ee8c400465bab30b28c8d723ef0"],"same_day":true,"statement_hash":"eff768f3c78ee5cbf1190b31ba0e199a717089101bc5523812af12ca673f8e66"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"确保通过规则或可更新视图更新 GENERATED 列所依赖的列时，生成列也得到更新","url":"/docs/compare/?release=12.5#12.5-23a8b36a1285b9aa","version":"12.5"}],"relations":[{"evidence":{"patch_ids":["4eee3ee8c400465bab30b28c8d723ef0"],"same_day":true,"statement_hash":"eff768f3c78ee5cbf1190b31ba0e199a717089101bc5523812af12ca673f8e66"},"rule":2,"target":"32954ad404f6b50f2e286068e3f41e5a","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["70492195b"],"source_entry_id":"13.1/changes/013","source_hash":"3df0b4afbb671b1b7da3f9dc27f4023b2f83f88b5a72d8a505929bd5ef841d0c","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"eff768f3c78ee5cbf1190b31ba0e199a717089101bc5523812af12ca673f8e66","text":"确保通过规则或可更新视图更新 GENERATED 列所依赖的列时，生成列也得到更新（Tom Lane）§ 此修复还处理了在这些情况下可能未能触发特定列触发器的问题。","title":"确保通过规则或可更新视图更新 GENERATED 列所依赖的列时，生成列也得到更新","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["29f20db85","61a78c71a","72647ac3b"],"commit_groups":[["29f20db85","61a78c71a","72647ac3b"]],"commits":["61a78c71a"],"cves":[],"db_id":"3aa94aaa97fbf3e45fb9a446ddb201ff","html":"\u003cp\u003e修复依赖排序规则的分区边界表达式所导致的失败（Tom Lane）\u003ca href=\"https://postgr.es/c/61a78c71a\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-c89429de410fa194","identity_text":"Fix failures with collation-dependent partition bound expressions (Tom Lane)","part":"changes","patch_ids":["17920f371d7cd8c0a562e75329b01763"],"related_changes":[{"db_id":"e0a9794cb9f97d7ff10346b1d05f8fe2","evidence":{"patch_ids":["17920f371d7cd8c0a562e75329b01763"],"same_day":true,"statement_hash":"61abd944044ae9390ecaae79d89a6d44bf926a75a31ba6a6d8683a7b3b259731"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复依赖排序规则的分区边界表达式所导致的失败","url":"/docs/compare/?release=12.5#12.5-a16c81750495646b","version":"12.5"}],"relations":[{"evidence":{"patch_ids":["17920f371d7cd8c0a562e75329b01763"],"same_day":true,"statement_hash":"61abd944044ae9390ecaae79d89a6d44bf926a75a31ba6a6d8683a7b3b259731"},"rule":2,"target":"e0a9794cb9f97d7ff10346b1d05f8fe2","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["61a78c71a"],"source_entry_id":"13.1/changes/014","source_hash":"84a72dcee0db878dd0cd7b64782ee094e6b405b6a413d3d880ec671d51c53aec","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"61abd944044ae9390ecaae79d89a6d44bf926a75a31ba6a6d8683a7b3b259731","text":"修复依赖排序规则的分区边界表达式所导致的失败（Tom Lane）§","title":"修复依赖排序规则的分区边界表达式所导致的失败","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["560564d3a","82d4a2a7d","ea9087938"],"commit_groups":[["560564d3a","82d4a2a7d","ea9087938"]],"commits":["82d4a2a7d"],"cves":[],"db_id":"93b6025e4e4e57c6621930dccc5f805a","html":"\u003cp\u003e支持对 text 数组进行 hash 运算（Peter Eisentraut）\u003ca href=\"https://postgr.es/c/82d4a2a7d\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e如果数组元素类型支持排序规则，对数组进行 hash 计算就会失败。尤其是，这使 text 数组列无法用作 hash 分区的分区键。\u003c/p\u003e","id":"13.1-c548f033df2a3cfd","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.","part":"changes","patch_ids":["113621db64df6ffdcd3e25b5f5a174ad"],"related_changes":[{"db_id":"f22891ac3918002c7c2efa185329bc78","evidence":{"patch_ids":["113621db64df6ffdcd3e25b5f5a174ad"],"same_day":true,"statement_hash":"f6987b0505dbb0d9cc27b1bc10d127ca08fbd9257cda5bba707d544e40a0bf5f"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"支持对 text 数组进行 hash 运算","url":"/docs/compare/?release=12.5#12.5-517a824cfc0e71db","version":"12.5"}],"relations":[{"evidence":{"patch_ids":["113621db64df6ffdcd3e25b5f5a174ad"],"same_day":true,"statement_hash":"f6987b0505dbb0d9cc27b1bc10d127ca08fbd9257cda5bba707d544e40a0bf5f"},"rule":2,"target":"f22891ac3918002c7c2efa185329bc78","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["82d4a2a7d"],"source_entry_id":"13.1/changes/015","source_hash":"070c42e53f32c3d7b0750107f7ff70476d806c25c715e00019325956a126a2e2","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"f6987b0505dbb0d9cc27b1bc10d127ca08fbd9257cda5bba707d544e40a0bf5f","text":"支持对 text 数组进行 hash 运算（Peter Eisentraut）§ 如果数组元素类型支持排序规则，对数组进行 hash 计算就会失败。尤其是，这使 text 数组列无法用作 hash 分区的分区键。","title":"支持对 text 数组进行 hash 运算","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["3db322eaa","5ed20a689"],"commit_groups":[["3db322eaa","5ed20a689"]],"commits":["5ed20a689"],"cves":[],"db_id":"c10717a87b742fbca976a5a2a5fe41ed","html":"\u003cp\u003e防止跨类型日期时间比较中的内部溢出（Nikita Glukhov，Alexander Korotkov，Tom Lane）\u003ca href=\"https://postgr.es/c/5ed20a689\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以前，将日期与时间戳比较时，如果日期超出了时间戳的有效范围，就会失败。还有一些边界情况涉及接近限值的时间戳在时区转换期间溢出。\u003c/p\u003e","id":"13.1-bc29c07190e2a280","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.","part":"changes","patch_ids":["1b00b2ffd8e4b8969d5aa8764bfcd8cc"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["5ed20a689"],"source_entry_id":"13.1/changes/016","source_hash":"cf213661a9c5d6f6de5551769ecc3aab97d6d4d10c1954b77e98613c283e6ab4","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"51274df1c6e4223b74b1e00a433362a9319ddb6119b8d45d34429dc676b1eb2a","text":"防止跨类型日期时间比较中的内部溢出（Nikita Glukhov，Alexander Korotkov，Tom Lane）§ 以前，将日期与时间戳比较时，如果日期超出了时间戳的有效范围，就会失败。还有一些边界情况涉及接近限值的时间戳在时区转换期间溢出。","title":"防止跨类型日期时间比较中的内部溢出","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["19e798268","4857e6fe1","489c9c340","99fd38c02","b0fe0b022","c5232dca8","db96be24c"],"commit_groups":[["19e798268","4857e6fe1","489c9c340","99fd38c02","b0fe0b022","c5232dca8","db96be24c"]],"commits":["99fd38c02"],"cves":[],"db_id":"2fd0b94406c1d907f7cb0ca75b2f92ae","html":"\u003cp\u003e修复 \u003ccode\u003eto_date()\u003c/code\u003e 和 \u003ccode\u003eto_timestamp()\u003c/code\u003e 将负年份转换为公元前日期时相差一年的错误（Dar Alathar-Yemen，Tom Lane）\u003ca href=\"https://postgr.es/c/99fd38c02\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e另外，使负年份与显式 \u003cspan\u003e“\u003cspan\u003eBC\u003c/span\u003e”\u003c/span\u003e 标记相抵消，得到 AD 年份。\u003c/p\u003e","id":"13.1-7d9550883a39e120","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.","part":"changes","patch_ids":["da4f71a59db3b584259538afe5bece44"],"related_changes":[{"db_id":"76c32d6fff44d9fe7f6ce0693e97bd23","evidence":{"patch_ids":["da4f71a59db3b584259538afe5bece44"],"same_day":true,"statement_hash":"cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误","url":"/docs/compare/?release=12.5#12.5-4d8b4715108b70a4","version":"12.5"},{"db_id":"428678237c4649112cd18135a78fceab","evidence":{"patch_ids":["da4f71a59db3b584259538afe5bece44"],"same_day":true,"statement_hash":"cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误","url":"/docs/compare/?release=11.10#11.10-3c2e9970f05d1632","version":"11.10"},{"db_id":"c9d9de197271b1d2bd42dfae5adabae0","evidence":{"patch_ids":["da4f71a59db3b584259538afe5bece44"],"same_day":true,"statement_hash":"cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误","url":"/docs/compare/?release=10.15#10.15-3c2e9970f05d1632","version":"10.15"},{"db_id":"84784e380c670115a62107d0b20c4f11","evidence":{"patch_ids":["da4f71a59db3b584259538afe5bece44"],"same_day":true,"statement_hash":"cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"修复 to_date() 和 to_timestamp() 中负年份转换为公元前日期的差一错误","url":"/docs/compare/?release=9.6.20#9.6.20-45294dfc52627d6f","version":"9.6.20"},{"db_id":"f41231159e971c7ec0aead8f8434fc68","evidence":{"patch_ids":["da4f71a59db3b584259538afe5bece44"],"same_day":true,"statement_hash":"cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"修复 to_date() 和 to_timestamp() 中负年份转换为公元前日期的差一错误","url":"/docs/compare/?release=9.5.24#9.5.24-45294dfc52627d6f","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["da4f71a59db3b584259538afe5bece44"],"same_day":true,"statement_hash":"cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"},"rule":2,"target":"428678237c4649112cd18135a78fceab","type":"equivalent"},{"evidence":{"patch_ids":["da4f71a59db3b584259538afe5bece44"],"same_day":true,"statement_hash":"cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"},"rule":2,"target":"76c32d6fff44d9fe7f6ce0693e97bd23","type":"equivalent"},{"evidence":{"patch_ids":["da4f71a59db3b584259538afe5bece44"],"same_day":true,"statement_hash":"cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"},"rule":2,"target":"84784e380c670115a62107d0b20c4f11","type":"equivalent"},{"evidence":{"patch_ids":["da4f71a59db3b584259538afe5bece44"],"same_day":true,"statement_hash":"cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"},"rule":2,"target":"c9d9de197271b1d2bd42dfae5adabae0","type":"equivalent"},{"evidence":{"patch_ids":["da4f71a59db3b584259538afe5bece44"],"same_day":true,"statement_hash":"cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec"},"rule":2,"target":"f41231159e971c7ec0aead8f8434fc68","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["99fd38c02"],"source_entry_id":"13.1/changes/017","source_hash":"14fc4ece6ea079a4bcb5fc31b9600709916a7582c5bef348bf153acedc15a457","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"cf5dea2934e0b734f3f2ada8610ca274cf4ea8d1d1be4c871000ab64bc4ccbec","text":"修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误（Dar Alathar-Yemen，Tom Lane）§ 另外，使负年份与显式 “BC” 标记相抵消，得到 AD 年份。","title":"修复 to_date() 和 to_timestamp() 将负年份转换为公元前日期时相差一年的错误","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["651bdbc81","927d9abb6","abcc0ab16","c2aa562ea"],"commit_groups":[["651bdbc81","927d9abb6"],["abcc0ab16","c2aa562ea"]],"commits":["651bdbc81","abcc0ab16"],"cves":[],"db_id":"f89c1b9e13f9c73c83192b184b13dd30","html":"\u003cp\u003e允许 \u003ccode\u003ejsonpath\u003c/code\u003e 的 \u003ccode\u003e.datetime()\u003c/code\u003e 方法接受 ISO 8601 格式的时间戳（Nikita Glukhov）\u003ca href=\"https://postgr.es/c/abcc0ab16\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/651bdbc81\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSQL 并未要求这样做，但这似乎是合适的，因为我们的 \u003ccode\u003eto_json()\u003c/code\u003e 函数为了兼容 Javascript，会生成这种时间戳格式。\u003c/p\u003e","id":"13.1-9fd6f1d9a1a80ba3","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.","part":"changes","patch_ids":["71cc89adfd789b8ad99156728a2668e1","e66484f95adb2714e96efa2a1769d978"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["651bdbc81","abcc0ab16"],"source_entry_id":"13.1/changes/018","source_hash":"eb9cdb5e1552d20322b659532520358200dfcc28036246c0d26192e7e97c9be5","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"d6a7af8629ff4600d791efc1b96be8dce64df52b3d6aae7ebaf1f5364281cd69","text":"允许 jsonpath 的 .datetime() 方法接受 ISO 8601 格式的时间戳（Nikita Glukhov）§ § SQL 并未要求这样做，但这似乎是合适的，因为我们的 to_json() 函数为了兼容 Javascript，会生成这种时间戳格式。","title":"允许 jsonpath 的 .datetime() 方法接受 ISO 8601 格式的时间戳","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["059caf36c","334417538","40a8fb1e0","462ff7966","4d342b9d4","7be02a3bf","fd26f7823"],"commit_groups":[["059caf36c","334417538","40a8fb1e0","462ff7966","4d342b9d4","7be02a3bf","fd26f7823"]],"commits":["059caf36c"],"cves":[],"db_id":"64226a4dd5aec9b9132c2923c3ee3d1c","html":"\u003cp\u003e确保 \u003ccode\u003earchive_mode\u003c/code\u003e 设为 \u003ccode\u003ealways\u003c/code\u003e 时，备库会归档 WAL 时间线历史文件（Grigory Smolkin，Fujii Masao）\u003ca href=\"https://postgr.es/c/059caf36c\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这一疏漏可能导致后续的 PITR 恢复尝试失败。\u003c/p\u003e","id":"13.1-f18215fa3b715eca","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.","part":"changes","patch_ids":["b93e2d7b5411b5d576ba054ba43323f9"],"related_changes":[{"db_id":"053c209c339b478e67a27125edb9d08e","evidence":{"patch_ids":["b93e2d7b5411b5d576ba054ba43323f9"],"same_day":true,"statement_hash":"2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件","url":"/docs/compare/?release=12.5#12.5-2b36622fcf63cc8d","version":"12.5"},{"db_id":"6a9a910ffb65d51355590d4f0c108eb3","evidence":{"patch_ids":["b93e2d7b5411b5d576ba054ba43323f9"],"same_day":true,"statement_hash":"2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件","url":"/docs/compare/?release=11.10#11.10-0e26c59c858c6787","version":"11.10"},{"db_id":"b27e4f45c04f28b1ef32f985c43dc224","evidence":{"patch_ids":["b93e2d7b5411b5d576ba054ba43323f9"],"same_day":true,"statement_hash":"2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件","url":"/docs/compare/?release=10.15#10.15-0e26c59c858c6787","version":"10.15"},{"db_id":"1da516870d70e895fa4515a85374ec9e","evidence":{"patch_ids":["b93e2d7b5411b5d576ba054ba43323f9"],"same_day":true,"statement_hash":"2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"确保 archive_mode 设为 always 时备库服务器会归档 WAL 时间线历史文件","url":"/docs/compare/?release=9.6.20#9.6.20-26225572f436edd7","version":"9.6.20"},{"db_id":"75be688416a161ae255e49f6b3ac3332","evidence":{"patch_ids":["b93e2d7b5411b5d576ba054ba43323f9"],"same_day":true,"statement_hash":"2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"确保 archive_mode 设为 always 时备库服务器会归档 WAL 时间线历史文件","url":"/docs/compare/?release=9.5.24#9.5.24-26225572f436edd7","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["b93e2d7b5411b5d576ba054ba43323f9"],"same_day":true,"statement_hash":"2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"},"rule":2,"target":"053c209c339b478e67a27125edb9d08e","type":"equivalent"},{"evidence":{"patch_ids":["b93e2d7b5411b5d576ba054ba43323f9"],"same_day":true,"statement_hash":"2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"},"rule":2,"target":"1da516870d70e895fa4515a85374ec9e","type":"equivalent"},{"evidence":{"patch_ids":["b93e2d7b5411b5d576ba054ba43323f9"],"same_day":true,"statement_hash":"2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"},"rule":2,"target":"6a9a910ffb65d51355590d4f0c108eb3","type":"equivalent"},{"evidence":{"patch_ids":["b93e2d7b5411b5d576ba054ba43323f9"],"same_day":true,"statement_hash":"2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"},"rule":2,"target":"75be688416a161ae255e49f6b3ac3332","type":"equivalent"},{"evidence":{"patch_ids":["b93e2d7b5411b5d576ba054ba43323f9"],"same_day":true,"statement_hash":"2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587"},"rule":2,"target":"b27e4f45c04f28b1ef32f985c43dc224","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["059caf36c"],"source_entry_id":"13.1/changes/019","source_hash":"cbbba4b1c4e7f1a025b5853a8815948a20aa41c7f0099cd9aaed06fd20af43db","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"2ca3bd2d6b9f535b99ead4347a591d4486a7f1d97750c5ba17bb7fa2da698587","text":"确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件（Grigory Smolkin，Fujii Masao）§ 这一疏漏可能导致后续的 PITR 恢复尝试失败。","title":"确保 archive_mode 设为 always 时，备库会归档 WAL 时间线历史文件","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["47522ee00","70516a178","b94109ce3","e0950135a"],"commit_groups":[["47522ee00","70516a178"],["b94109ce3","e0950135a"]],"commits":["47522ee00","e0950135a"],"cves":[],"db_id":"15d215e464fe076f0eb955d193bd9f27","html":"\u003cp\u003e修复在使用 \u003ccode\u003ekqueue()\u003c/code\u003e 的平台上检测 postmaster 过早终止时的边界情况（Thomas Munro）\u003ca href=\"https://postgr.es/c/e0950135a\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/47522ee00\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-650eaeef1bbde4fd","identity_text":"Fix edge cases in detecting premature death of the postmaster on platforms that use kqueue() (Thomas Munro)","part":"changes","patch_ids":["4b9b9375547266ee3f57ce13989ff2d8","8b2be810ff13e43fd864af6760c441f8"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["47522ee00","e0950135a"],"source_entry_id":"13.1/changes/020","source_hash":"c4e4d19ada5408a542a85a3b703fcd8475ce2d77af22b1ba597fe6ebb844be3f","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"7b143ffb1b76ff6dcf408a7690ca9bc5757b0d5451b0b1a4b276ab5608a119f0","text":"修复在使用 kqueue() 的平台上检测 postmaster 过早终止时的边界情况（Thomas Munro）§ §","title":"修复在使用 kqueue() 的平台上检测 postmaster 过早终止时的边界情况","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["2d26c4ac7","ebb7ae839"],"commit_groups":[["2d26c4ac7","ebb7ae839"]],"commits":["2d26c4ac7"],"cves":[],"db_id":"d918d4efbf088cefafa9d8dd8591e220","html":"\u003cp\u003e避免排序键为易变表达式时生成不正确的增量排序计划（James Coleman）\u003ca href=\"https://postgr.es/c/2d26c4ac7\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-8ac209804b7e5b98","identity_text":"Avoid generating an incorrect incremental-sort plan when the sort key is a volatile expression (James Coleman)","part":"changes","patch_ids":["d0fdd8317870da60c97eb2b2dbcca971"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["2d26c4ac7"],"source_entry_id":"13.1/changes/021","source_hash":"d6b2259b0dcb08d4748e17fc8c0a236ee0a234de8cb58b519ac7449bcfb17c88","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"41660d997cc99022b38473fb445d94eb01dafcdbbeaadd33f7a5e176ded1752f","text":"避免排序键为易变表达式时生成不正确的增量排序计划（James Coleman）§","title":"避免排序键为易变表达式时生成不正确的增量排序计划","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["3d69efc4f","b7f166efa","d7885b1f8"],"commit_groups":[["3d69efc4f","b7f166efa","d7885b1f8"]],"commits":["b7f166efa"],"cves":[],"db_id":"9967ce7aad3dd5dd2ef99246f9879800","html":"\u003cp\u003e修复 GEQO 规划期间考虑逐分区连接时可能发生的崩溃（Tom Lane）\u003ca href=\"https://postgr.es/c/b7f166efa\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-c208ca7e521b0be0","identity_text":"Fix possible crash when considering partition-wise joins during GEQO planning (Tom Lane)","part":"changes","patch_ids":["12fc209d644e2561968709cfba9ee098"],"related_changes":[{"db_id":"5e974e3e4a96fc28a8813100c7838344","evidence":{"patch_ids":["12fc209d644e2561968709cfba9ee098"],"same_day":true,"statement_hash":"c6c5b2b3cd624ee5deeaee98c0ed57040b2ab370c3b31016bbc9910fcd7741a3"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复 GEQO 规划期间考虑逐分区连接时可能发生的崩溃","url":"/docs/compare/?release=12.5#12.5-28baac7d04b5dce7","version":"12.5"}],"relations":[{"evidence":{"patch_ids":["12fc209d644e2561968709cfba9ee098"],"same_day":true,"statement_hash":"c6c5b2b3cd624ee5deeaee98c0ed57040b2ab370c3b31016bbc9910fcd7741a3"},"rule":2,"target":"5e974e3e4a96fc28a8813100c7838344","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["b7f166efa"],"source_entry_id":"13.1/changes/022","source_hash":"61160827ff9249f1f143b8db702ea3a5fa8db88ec3d8ea7fbfa5c76ea0fd9ccc","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"c6c5b2b3cd624ee5deeaee98c0ed57040b2ab370c3b31016bbc9910fcd7741a3","text":"修复 GEQO 规划期间考虑逐分区连接时可能发生的崩溃（Tom Lane）§","title":"修复 GEQO 规划期间考虑逐分区连接时可能发生的崩溃","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["2330f4d3a","7957e75c5","dfc797730","fd2997565"],"commit_groups":[["2330f4d3a","dfc797730"],["7957e75c5","fd2997565"]],"commits":["2330f4d3a","7957e75c5"],"cves":[],"db_id":"2011de0a05a356f5e01aa50c7feb5b0a","html":"\u003cp\u003e修复 TOAST 解压缩中可能出现的无限循环或输出数据损坏（Tom Lane）\u003ca href=\"https://postgr.es/c/2330f4d3a\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/7957e75c5\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-106979538f1d54c5","identity_text":"Fix possible infinite loop or corrupted output data in TOAST decompression (Tom Lane)","part":"changes","patch_ids":["1fd605e7a2ed4ecebe485fb075c1bcb9","d4bd854ee44e7e7e3433eb1b61be5104"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["2330f4d3a","7957e75c5"],"source_entry_id":"13.1/changes/023","source_hash":"66bb5504cb3dc4875e4268c64ce36689696b742c30245e586924d8714efce4f7","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"8727cc8096a29fb0d77d0dc563321f11e20c67086e858d69216df34c3d75874d","text":"修复 TOAST 解压缩中可能出现的无限循环或输出数据损坏（Tom Lane）§ §","title":"修复 TOAST 解压缩中可能出现的无限循环或输出数据损坏","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["02c9386ca","48e129134"],"commit_groups":[["02c9386ca","48e129134"]],"commits":["02c9386ca"],"cves":[],"db_id":"ded1b49ce93226a851b173c31500fa18","html":"\u003cp\u003e修复仅执行清理的 \u003ccode\u003eVACUUM\u003c/code\u003e 期间对 B-树索引条目数量的统计（Peter Geoghegan）\u003ca href=\"https://postgr.es/c/02c9386ca\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-3faf4ab1965c943a","identity_text":"Fix counting of the number of entries in B-tree indexes during cleanup-only VACUUMs (Peter Geoghegan)","part":"changes","patch_ids":["a5c60d0f3c7934626f25079a65bad4e1"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["02c9386ca"],"source_entry_id":"13.1/changes/024","source_hash":"1c487c259e139aa99c5dec4a57621ea6be9ce4cf0d81f693320fa71eacec039b","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"dfb9f9fa5a570774d292a6f118a3fc83fa77df20dea74aa7ac02d4fc42e7621c","text":"修复仅执行清理的 VACUUM 期间对 B-树索引条目数量的统计（Peter Geoghegan）§","title":"修复仅执行清理的 VACUUM 期间对 B-树索引条目数量的统计","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["0b96fc977","6a7b55f37","7577dd848","8149e9f9a","895d0f0e8","bae31e75f","d2d3a4bd3"],"commit_groups":[["0b96fc977","6a7b55f37","7577dd848","8149e9f9a","895d0f0e8","bae31e75f","d2d3a4bd3"]],"commits":["6a7b55f37"],"cves":[],"db_id":"95765ebcf7631dcde378d4d43c4c0712","html":"\u003cp\u003e确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原（Tomas Vondra）\u003ca href=\"https://postgr.es/c/6a7b55f37\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e索引条目本不应包含指向行外数据的 TOAST 指针，但 BRIN 没有遵守这一要求。这可能导致 \u003cspan\u003e“\u003cspan\u003emissing chunk number 0 for toast value NNN\u003c/span\u003e”\u003c/span\u003e 等错误。（如果现有索引出现这种错误，执行 \u003ccode\u003eREINDEX\u003c/code\u003e 应该就足以修复。）\u003c/p\u003e","id":"13.1-1fa45007c49735ce","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.)","part":"changes","patch_ids":["534abd595a708a17fb37ed3a0930c7f9"],"related_changes":[{"db_id":"6d3ae9234fedba53c33fc98ff81de64e","evidence":{"patch_ids":["534abd595a708a17fb37ed3a0930c7f9"],"same_day":true,"statement_hash":"7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原","url":"/docs/compare/?release=12.5#12.5-5dba5e2a1baab5c8","version":"12.5"},{"db_id":"3a95c594e79e1558d409445b7300f390","evidence":{"patch_ids":["534abd595a708a17fb37ed3a0930c7f9"],"same_day":true,"statement_hash":"7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原","url":"/docs/compare/?release=11.10#11.10-c53d5ef58c33b47f","version":"11.10"},{"db_id":"ab88194be714e40017e2bf390c01f821","evidence":{"patch_ids":["534abd595a708a17fb37ed3a0930c7f9"],"same_day":true,"statement_hash":"7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原","url":"/docs/compare/?release=10.15#10.15-c53d5ef58c33b47f","version":"10.15"},{"db_id":"bcd61f90172c14c33f00a2c033767381","evidence":{"patch_ids":["534abd595a708a17fb37ed3a0930c7f9"],"same_day":true,"statement_hash":"7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"确保数据在插入 BRIN 索引之前被解 TOAST","url":"/docs/compare/?release=9.6.20#9.6.20-d22eb05e2689d363","version":"9.6.20"},{"db_id":"49d146dcd44b3db32a631c0fe0867811","evidence":{"patch_ids":["534abd595a708a17fb37ed3a0930c7f9"],"same_day":true,"statement_hash":"7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"确保数据在插入 BRIN 索引之前被解 TOAST","url":"/docs/compare/?release=9.5.24#9.5.24-d22eb05e2689d363","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["534abd595a708a17fb37ed3a0930c7f9"],"same_day":true,"statement_hash":"7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"},"rule":2,"target":"3a95c594e79e1558d409445b7300f390","type":"equivalent"},{"evidence":{"patch_ids":["534abd595a708a17fb37ed3a0930c7f9"],"same_day":true,"statement_hash":"7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"},"rule":2,"target":"49d146dcd44b3db32a631c0fe0867811","type":"equivalent"},{"evidence":{"patch_ids":["534abd595a708a17fb37ed3a0930c7f9"],"same_day":true,"statement_hash":"7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"},"rule":2,"target":"6d3ae9234fedba53c33fc98ff81de64e","type":"equivalent"},{"evidence":{"patch_ids":["534abd595a708a17fb37ed3a0930c7f9"],"same_day":true,"statement_hash":"7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"},"rule":2,"target":"ab88194be714e40017e2bf390c01f821","type":"equivalent"},{"evidence":{"patch_ids":["534abd595a708a17fb37ed3a0930c7f9"],"same_day":true,"statement_hash":"7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3"},"rule":2,"target":"bcd61f90172c14c33f00a2c033767381","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["6a7b55f37"],"source_entry_id":"13.1/changes/025","source_hash":"2ae8bbd278abeb5d22420cd3aca409ea90ffeab6177ebfe8b344f3bd9a0d0c38","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"7e77cd0db35ea74e8a823685cb223554b2c66fbdfb5071a3fbf50908516233c3","text":"确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原（Tomas Vondra）§ 索引条目本不应包含指向行外数据的 TOAST 指针，但 BRIN 没有遵守这一要求。这可能导致 “missing chunk number 0 for toast value NNN” 等错误。（如果现有索引出现这种错误，执行 REINDEX 应该就足以修复。）","title":"确保数据插入 BRIN 索引之前，先将其从 TOAST 表示还原","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["12945874e","371668a83","962ab473e"],"commit_groups":[["12945874e","371668a83","962ab473e"]],"commits":["962ab473e"],"cves":[],"db_id":"ae591682bcbfaa811e33a6b790a536bb","html":"\u003cp\u003e修复带缓冲的 GiST 索引构建，使其在索引具有内含列时正常工作（Pavel Borisov）\u003ca href=\"https://postgr.es/c/962ab473e\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-4ec796bc827d056e","identity_text":"Fix buffered GiST index builds to work when the index has included columns (Pavel Borisov)","part":"changes","patch_ids":["15503c210c7190b67cc55fc711d48d48"],"related_changes":[{"db_id":"c6609f80bbb5bbc7d296f261f020647e","evidence":{"patch_ids":["15503c210c7190b67cc55fc711d48d48"],"same_day":true,"statement_hash":"1a2c941f1c8128911ad42c6eaf55db66fe2c3a1e7d0c761e9b8305473f32bd79"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复带缓冲的 GiST 索引构建，使其在索引具有内含列时正常工作","url":"/docs/compare/?release=12.5#12.5-33d1ac73a3c7711b","version":"12.5"}],"relations":[{"evidence":{"patch_ids":["15503c210c7190b67cc55fc711d48d48"],"same_day":true,"statement_hash":"1a2c941f1c8128911ad42c6eaf55db66fe2c3a1e7d0c761e9b8305473f32bd79"},"rule":2,"target":"c6609f80bbb5bbc7d296f261f020647e","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["962ab473e"],"source_entry_id":"13.1/changes/026","source_hash":"4c9a040347d0b822ca3da1178613ac85deaff8821dc264b187938196b775f5ab","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"1a2c941f1c8128911ad42c6eaf55db66fe2c3a1e7d0c761e9b8305473f32bd79","text":"修复带缓冲的 GiST 索引构建，使其在索引具有内含列时正常工作（Pavel Borisov）§","title":"修复带缓冲的 GiST 索引构建，使其在索引具有内含列时正常工作","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["0a4b34031","7827497ba","a58a631b4","d3befe9b9","f28b089cb"],"commit_groups":[["0a4b34031","7827497ba","a58a631b4","d3befe9b9","f28b089cb"]],"commits":["a58a631b4"],"cves":[],"db_id":"2a419bdbb78952d90ba035886c3fd4ab","html":"\u003cp\u003e修复 \u003ccode\u003epg_hba_file_rules\u003c/code\u003e 视图中不具可移植性的 \u003ccode\u003egetnameinfo()\u003c/code\u003e 用法（Tom Lane）\u003ca href=\"https://postgr.es/c/a58a631b4\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e在 FreeBSD 11 以及可能的其他平台上，此错误会使该视图的 \u003ccode\u003eaddress\u003c/code\u003e 和 \u003ccode\u003enetmask\u003c/code\u003e 列始终为空。\u003c/p\u003e","id":"13.1-eea918ce1066bc1a","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.","part":"changes","patch_ids":["07612e72d396d2122d66a0a72b1a6efc"],"related_changes":[{"db_id":"3d842635529bd2e26a671d4defac00c3","evidence":{"patch_ids":["07612e72d396d2122d66a0a72b1a6efc"],"same_day":true,"statement_hash":"1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复 pg_hba_file_rules 视图中不具可移植性的 getnameinfo() 用法","url":"/docs/compare/?release=12.5#12.5-7342525e4b825b80","version":"12.5"},{"db_id":"4fe5308f26f8ccc15cb62e7101491e87","evidence":{"patch_ids":["07612e72d396d2122d66a0a72b1a6efc"],"same_day":true,"statement_hash":"1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"修复 pg_hba_file_rules 视图中不具可移植性的 getnameinfo() 用法","url":"/docs/compare/?release=11.10#11.10-a67404ca0c5638a0","version":"11.10"},{"db_id":"22caa5d89861b8edea06ad5d67a5dabd","evidence":{"patch_ids":["07612e72d396d2122d66a0a72b1a6efc"],"same_day":true,"statement_hash":"1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"修复 pg_hba_file_rules 视图中不具可移植性的 getnameinfo() 用法","url":"/docs/compare/?release=10.15#10.15-a67404ca0c5638a0","version":"10.15"}],"relations":[{"evidence":{"patch_ids":["07612e72d396d2122d66a0a72b1a6efc"],"same_day":true,"statement_hash":"1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6"},"rule":2,"target":"22caa5d89861b8edea06ad5d67a5dabd","type":"equivalent"},{"evidence":{"patch_ids":["07612e72d396d2122d66a0a72b1a6efc"],"same_day":true,"statement_hash":"1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6"},"rule":2,"target":"3d842635529bd2e26a671d4defac00c3","type":"equivalent"},{"evidence":{"patch_ids":["07612e72d396d2122d66a0a72b1a6efc"],"same_day":true,"statement_hash":"1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6"},"rule":2,"target":"4fe5308f26f8ccc15cb62e7101491e87","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["a58a631b4"],"source_entry_id":"13.1/changes/027","source_hash":"e0590bf8bc94969538c63374bad781c5c8e5d31048f999576e133be165c8a66e","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"1e939b233dab97a3171ca20a18f8132b0421f4f0b22d149a89fc6ce0f9ab4ac6","text":"修复 pg_hba_file_rules 视图中不具可移植性的 getnameinfo() 用法（Tom Lane）§ 在 FreeBSD 11 以及可能的其他平台上，此错误会使该视图的 address 和 netmask 列始终为空。","title":"修复 pg_hba_file_rules 视图中不具可移植性的 getnameinfo() 用法","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["045466675","741b84e9f","ab2e2ce46","f90e80b91"],"commit_groups":[["045466675","741b84e9f","ab2e2ce46","f90e80b91"]],"commits":["ab2e2ce46"],"cves":[],"db_id":"d4e57d3ea2431cb29da2824fe065b36b","html":"\u003cp\u003e避免启动并行工作进程时 \u003ccode\u003edebug_query_string\u003c/code\u003e 为 NULL 所导致的崩溃（Noah Misch）\u003ca href=\"https://postgr.es/c/ab2e2ce46\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-83a4965946a4fa97","identity_text":"Avoid crash if debug_query_string is NULL when starting a parallel worker (Noah Misch)","part":"changes","patch_ids":["352162a74b6871772ce95672b7f32f90"],"related_changes":[{"db_id":"3cca734fcebd548ffabb772009aaef1b","evidence":{"patch_ids":["352162a74b6871772ce95672b7f32f90"],"same_day":true,"statement_hash":"f25548746f8fd4e89863a95550507dd68fb246e92a5d3bfcbf18a9f0399e4c9a"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"避免启动并行工作进程时 debug_query_string 为 NULL 所导致的崩溃","url":"/docs/compare/?release=12.5#12.5-c224b36f5927f738","version":"12.5"},{"db_id":"835134fa76df0cee9abb239858d2afe9","evidence":{"patch_ids":["352162a74b6871772ce95672b7f32f90"],"same_day":true,"statement_hash":"f25548746f8fd4e89863a95550507dd68fb246e92a5d3bfcbf18a9f0399e4c9a"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"避免启动并行工作进程时 debug_query_string 为 NULL 所导致的崩溃","url":"/docs/compare/?release=11.10#11.10-b4c78c2986aed215","version":"11.10"}],"relations":[{"evidence":{"patch_ids":["352162a74b6871772ce95672b7f32f90"],"same_day":true,"statement_hash":"f25548746f8fd4e89863a95550507dd68fb246e92a5d3bfcbf18a9f0399e4c9a"},"rule":2,"target":"3cca734fcebd548ffabb772009aaef1b","type":"equivalent"},{"evidence":{"patch_ids":["352162a74b6871772ce95672b7f32f90"],"same_day":true,"statement_hash":"f25548746f8fd4e89863a95550507dd68fb246e92a5d3bfcbf18a9f0399e4c9a"},"rule":2,"target":"835134fa76df0cee9abb239858d2afe9","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["ab2e2ce46"],"source_entry_id":"13.1/changes/028","source_hash":"711b895ef779f4c4ea7be480b7fcd54957399535527d94d0b81b9447a8f924fa","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"f25548746f8fd4e89863a95550507dd68fb246e92a5d3bfcbf18a9f0399e4c9a","text":"避免启动并行工作进程时 debug_query_string 为 NULL 所导致的崩溃（Noah Misch）§","title":"避免启动并行工作进程时 debug_query_string 为 NULL 所导致的崩溃","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["20d3fe900","7aeb6404f","8b39345a9","94ec005f3","ba9f18abd","d88d8ad28","de78c1007"],"commit_groups":[["20d3fe900"],["7aeb6404f","8b39345a9","94ec005f3"],["ba9f18abd","d88d8ad28","de78c1007"]],"commits":["7aeb6404f","d88d8ad28"],"cves":[],"db_id":"c580365d462cc35a27692a294b8f20ec","html":"\u003cp\u003e避免 \u003ccode\u003eBEFORE ROW UPDATE\u003c/code\u003e 触发器返回具有已删除列或\u003cspan\u003e“\u003cspan\u003e缺失\u003c/span\u003e”\u003c/span\u003e列的表中的\u003cspan\u003e“\u003cspan\u003e旧\u003c/span\u003e”\u003c/span\u003e行时发生失败（Amit Langote，Tom Lane）\u003ca href=\"https://postgr.es/c/d88d8ad28\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/7aeb6404f\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这种阻止更新的方法可能导致崩溃、意外的 \u003ccode\u003eCHECK\u003c/code\u003e 约束失败或不正确的 \u003ccode\u003eRETURNING\u003c/code\u003e 输出，因为在这些操作中，\u003cspan\u003e“\u003cspan\u003e缺失\u003c/span\u003e”\u003c/span\u003e列会被读取为 NULL。（这里所说的\u003cspan\u003e“\u003cspan\u003e缺失\u003c/span\u003e”\u003c/span\u003e列，是指通过 \u003ccode\u003eALTER TABLE ADD COLUMN\u003c/code\u003e 添加、具有非 NULL 常量默认值的列。）已删除的列也可能造成问题。\u003c/p\u003e","id":"13.1-ea9244931dab7272","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.","part":"changes","patch_ids":["52af55f0056f03b02aa4635939017e0f","7e89c65db5015f202d6be2f9e5df3d4e","92de05734f58351f15591809d5a00907"],"related_changes":[{"db_id":"e69f11669077089097d73c698630fe22","evidence":{"patch_ids":["52af55f0056f03b02aa4635939017e0f","7e89c65db5015f202d6be2f9e5df3d4e","92de05734f58351f15591809d5a00907"],"same_day":true,"statement_hash":"7630ef316dfd261b58edc727b386a60f8bbb7fabc85637d66024306504e7b329"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"避免 BEFORE ROW UPDATE 触发器返回具有已删除列或“缺失”列的表中的“旧”行时发生失败","url":"/docs/compare/?release=12.5#12.5-28ecd86af13e9c4f","version":"12.5"}],"relations":[{"evidence":{"patch_ids":["52af55f0056f03b02aa4635939017e0f","7e89c65db5015f202d6be2f9e5df3d4e","92de05734f58351f15591809d5a00907"],"same_day":true,"statement_hash":"7630ef316dfd261b58edc727b386a60f8bbb7fabc85637d66024306504e7b329"},"rule":2,"target":"e69f11669077089097d73c698630fe22","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["20d3fe900","7aeb6404f","d88d8ad28"],"source_entry_id":"13.1/changes/029","source_hash":"1a6cc8c1c01d5f1dea1c09ca51f99012abe26338b0a8f2e947c8e0d5b7cb4353","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"7630ef316dfd261b58edc727b386a60f8bbb7fabc85637d66024306504e7b329","text":"避免 BEFORE ROW UPDATE 触发器返回具有已删除列或“缺失”列的表中的“旧”行时发生失败（Amit Langote，Tom Lane）§ § 这种阻止更新的方法可能导致崩溃、意外的 CHECK 约束失败或不正确的 RETURNING 输出，因为在这些操作中，“缺失”列会被读取为 NULL。（这里所说的“缺失”列，是指通过 ALTER TABLE ADD COLUMN 添加、具有非 NULL 常量默认值的列。）已删除的列也可能造成问题。","title":"避免 BEFORE ROW UPDATE 触发器返回具有已删除列或“缺失”列的表中的“旧”行时发生失败","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["87a174c0e","e4538708d"],"commit_groups":[["87a174c0e","e4538708d"]],"commits":["e4538708d"],"cves":[],"db_id":"4da442924c2659257fe8c21784e61cfd","html":"\u003cp\u003e修复 \u003ccode\u003eEXPLAIN\u003c/code\u003e 对增量排序计划的输出，使其在 XML 输出模式下具有正确的标签嵌套（Daniel Gustafsson）\u003ca href=\"https://postgr.es/c/e4538708d\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-37411b2425f856b1","identity_text":"Fix EXPLAIN's output for incremental sort plans to have correct tag nesting in XML output mode (Daniel Gustafsson)","part":"changes","patch_ids":["ec0d4aeb84c8b1b87856ddcf39edf219"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["e4538708d"],"source_entry_id":"13.1/changes/030","source_hash":"d94d8ba611334440a47da201dad9c12d1fbb6f747d657fc9ea85503fd78b4089","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"7d50c9dcea2a2bb7f3280468b9600f31dcff4b6f31055f2fa14ad8543c7848d6","text":"修复 EXPLAIN 对增量排序计划的输出，使其在 XML 输出模式下具有正确的标签嵌套（Daniel Gustafsson）§","title":"修复 EXPLAIN 对增量排序计划的输出，使其在 XML 输出模式下具有正确的标签嵌套","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["1f53d0b9f","6e03a8a30","bd0677bb8","d27c18d26","d4e654d15","f78ebbe68"],"commit_groups":[["1f53d0b9f","6e03a8a30","bd0677bb8","d27c18d26","d4e654d15","f78ebbe68"]],"commits":["1f53d0b9f"],"cves":[],"db_id":"dece852415693fdfc7ab729e403fbc5e","html":"\u003cp\u003e避免通过共享内存队列传输很大的数据载荷时发生不必要的失败（Markus Wanner）\u003ca href=\"https://postgr.es/c/1f53d0b9f\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-210e18fd8bf5ac2c","identity_text":"Avoid unnecessary failure when transferring very large payloads through shared memory queues (Markus Wanner)","part":"changes","patch_ids":["f1543ff09429b9ab4c2897da71522546"],"related_changes":[{"db_id":"12ff41f26722da3cc3a0ed8a75a9eec6","evidence":{"patch_ids":["f1543ff09429b9ab4c2897da71522546"],"same_day":true,"statement_hash":"9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"避免通过共享内存队列传输很大的数据载荷时发生不必要的失败","url":"/docs/compare/?release=12.5#12.5-7887982efb40aae8","version":"12.5"},{"db_id":"4ba2ea381edaca1a2af12cc610701790","evidence":{"patch_ids":["f1543ff09429b9ab4c2897da71522546"],"same_day":true,"statement_hash":"9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"避免通过共享内存队列传输很大的数据载荷时发生不必要的失败","url":"/docs/compare/?release=11.10#11.10-53e2e6de806fd956","version":"11.10"},{"db_id":"e93b23d1f0a5d1a9e2736c1b8a37d392","evidence":{"patch_ids":["f1543ff09429b9ab4c2897da71522546"],"same_day":true,"statement_hash":"9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"避免通过共享内存队列传输很大的数据载荷时发生不必要的失败","url":"/docs/compare/?release=10.15#10.15-53e2e6de806fd956","version":"10.15"},{"db_id":"bb9141f24650e5106970fe90e0922e78","evidence":{"patch_ids":["f1543ff09429b9ab4c2897da71522546"],"same_day":true,"statement_hash":"9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"避免通过共享内存队列传输超大载荷时不必要的失败","url":"/docs/compare/?release=9.6.20#9.6.20-f65391a2541e01bc","version":"9.6.20"},{"db_id":"722acae857036426760487d25452bcc2","evidence":{"patch_ids":["f1543ff09429b9ab4c2897da71522546"],"same_day":true,"statement_hash":"9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"避免通过共享内存队列传输超大载荷时不必要的失败","url":"/docs/compare/?release=9.5.24#9.5.24-f65391a2541e01bc","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["f1543ff09429b9ab4c2897da71522546"],"same_day":true,"statement_hash":"9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"},"rule":2,"target":"12ff41f26722da3cc3a0ed8a75a9eec6","type":"equivalent"},{"evidence":{"patch_ids":["f1543ff09429b9ab4c2897da71522546"],"same_day":true,"statement_hash":"9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"},"rule":2,"target":"4ba2ea381edaca1a2af12cc610701790","type":"equivalent"},{"evidence":{"patch_ids":["f1543ff09429b9ab4c2897da71522546"],"same_day":true,"statement_hash":"9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"},"rule":2,"target":"722acae857036426760487d25452bcc2","type":"equivalent"},{"evidence":{"patch_ids":["f1543ff09429b9ab4c2897da71522546"],"same_day":true,"statement_hash":"9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"},"rule":2,"target":"bb9141f24650e5106970fe90e0922e78","type":"equivalent"},{"evidence":{"patch_ids":["f1543ff09429b9ab4c2897da71522546"],"same_day":true,"statement_hash":"9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878"},"rule":2,"target":"e93b23d1f0a5d1a9e2736c1b8a37d392","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["1f53d0b9f"],"source_entry_id":"13.1/changes/031","source_hash":"afb2c88e0b9ec95b89c509719b6330d1877fc076c522705014fcbf064708631f","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"9b370220379a888f4a09f8f6cdaa9cfeaf1a181713b0a53730f6f0128b090878","text":"避免通过共享内存队列传输很大的数据载荷时发生不必要的失败（Markus Wanner）§","title":"避免通过共享内存队列传输很大的数据载荷时发生不必要的失败","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["25378db74","c8ab97017"],"commit_groups":[["25378db74","c8ab97017"]],"commits":["25378db74"],"cves":[],"db_id":"470c4eb39b9834086366d9fbcae7d6ed","html":"\u003cp\u003e修复 SQL 语言函数在某些情况下遗漏结果数据类型强制转换的问题（Tom Lane）\u003ca href=\"https://postgr.es/c/25378db74\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e根据所涉及的数据类型，这可能导致错误结果或崩溃。\u003c/p\u003e","id":"13.1-bf8efdfab4850177","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.","part":"changes","patch_ids":["2867013706c2a87edacd3351924c59f4"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["25378db74"],"source_entry_id":"13.1/changes/032","source_hash":"c2bfddfd1a127255e26011f43a9ad2fac21eac8120becae2ba0b2a3cbcd59068","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"ad81df6663e4804fcd61d4cb38f1b93cb7d4af7c5bb42588cd683159a8ae2712","text":"修复 SQL 语言函数在某些情况下遗漏结果数据类型强制转换的问题（Tom Lane）§ 根据所涉及的数据类型，这可能导致错误结果或崩溃。","title":"修复 SQL 语言函数在某些情况下遗漏结果数据类型强制转换的问题","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["4a4f4487d","72559438f","ae3e75aba","c835c7ffe","c8a2bb0f1","efc9a8e98","f3dee5b9a","fe2a16d8b"],"commit_groups":[["4a4f4487d","c835c7ffe","efc9a8e98","fe2a16d8b"],["72559438f","ae3e75aba","c8a2bb0f1","f3dee5b9a"]],"commits":["ae3e75aba","efc9a8e98"],"cves":[],"db_id":"8aa117ba3c853d8730288d455829a2cf","html":"\u003cp\u003e修复 JIT 代码生成中对模板函数属性的不正确处理（Andres Freund）\u003ca href=\"https://postgr.es/c/ae3e75aba\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/efc9a8e98\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e已证实这会在 \u003ccode\u003es390x\u003c/code\u003e 上导致崩溃，而且其他平台上很可能也存在其他情况。\u003c/p\u003e","id":"13.1-ed3aae7a8e31af6f","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.","part":"changes","patch_ids":["14997dfbf3961affbcf31ee3fff6f2d7","8936ee1f49335cc56e6723c7fd14b16b"],"related_changes":[{"db_id":"476af4bcdb407a549269c7e4f1c0b24e","evidence":{"patch_ids":["14997dfbf3961affbcf31ee3fff6f2d7","8936ee1f49335cc56e6723c7fd14b16b"],"same_day":true,"statement_hash":"8193cb342ca0b4d2f1847ec58f574e19a3ccaac85b81b25d315517803f81831c"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复 JIT 代码生成中对模板函数属性的不正确处理","url":"/docs/compare/?release=12.5#12.5-c8bb8dc7c5c97a78","version":"12.5"},{"db_id":"09db2f8a5b82ecab5291e44b000f8f1b","evidence":{"patch_ids":["14997dfbf3961affbcf31ee3fff6f2d7","8936ee1f49335cc56e6723c7fd14b16b"],"same_day":true,"statement_hash":"8193cb342ca0b4d2f1847ec58f574e19a3ccaac85b81b25d315517803f81831c"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"修复 JIT 代码生成中对模板函数属性的不正确处理","url":"/docs/compare/?release=11.10#11.10-6de6a93aeed9ffbf","version":"11.10"}],"relations":[{"evidence":{"patch_ids":["14997dfbf3961affbcf31ee3fff6f2d7","8936ee1f49335cc56e6723c7fd14b16b"],"same_day":true,"statement_hash":"8193cb342ca0b4d2f1847ec58f574e19a3ccaac85b81b25d315517803f81831c"},"rule":2,"target":"09db2f8a5b82ecab5291e44b000f8f1b","type":"equivalent"},{"evidence":{"patch_ids":["14997dfbf3961affbcf31ee3fff6f2d7","8936ee1f49335cc56e6723c7fd14b16b"],"same_day":true,"statement_hash":"8193cb342ca0b4d2f1847ec58f574e19a3ccaac85b81b25d315517803f81831c"},"rule":2,"target":"476af4bcdb407a549269c7e4f1c0b24e","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["ae3e75aba","efc9a8e98"],"source_entry_id":"13.1/changes/033","source_hash":"fd17874c8745b0c00ec147e42d900ef263565c527cea2002e49e9400d6ef5fdb","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"8193cb342ca0b4d2f1847ec58f574e19a3ccaac85b81b25d315517803f81831c","text":"修复 JIT 代码生成中对模板函数属性的不正确处理（Andres Freund）§ § 已证实这会在 s390x 上导致崩溃，而且其他平台上很可能也存在其他情况。","title":"修复 JIT 代码生成中对模板函数属性的不正确处理","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["5efa788e1","88ea7a118","d41cb63ff","f5c1167b1"],"commit_groups":[["5efa788e1","88ea7a118"],["d41cb63ff","f5c1167b1"]],"commits":["5efa788e1","d41cb63ff"],"cves":[],"db_id":"4b375263a3feb7a271e1b0a87267bae2","html":"\u003cp\u003e改进 PPC 上为 compare_exchange 和 fetch_add 操作生成的代码（Noah Misch）\u003ca href=\"https://postgr.es/c/d41cb63ff\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/5efa788e1\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-ef0f1bc0a9d0165e","identity_text":"Improve code generated for compare_exchange and fetch_add operations on PPC (Noah Misch)","part":"changes","patch_ids":["ae1baa60fdfb3b131f7868ca555806cc","d0d468652c388304f917d7c1bc4cd32b"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["5efa788e1","d41cb63ff"],"source_entry_id":"13.1/changes/034","source_hash":"7f965090db328c7776c28570b4c4ee99ae1a308197dd99b94a29afd0d6cb8e01","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"fe07476be7531f41e573958cd06bcd5d7cdd0e99cf3b96e19b302af966ef3fe1","text":"改进 PPC 上为 compare_exchange 和 fetch_add 操作生成的代码（Noah Misch）§ §","title":"改进 PPC 上为 compare_exchange 和 fetch_add 操作生成的代码","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["acab757ce","bda32733c","bf34ae930","dd89ba578","de6725deb","e55f718fc","f7873900f"],"commit_groups":[["acab757ce","bda32733c","bf34ae930","dd89ba578","de6725deb","e55f718fc","f7873900f"]],"commits":["f7873900f"],"cves":[],"db_id":"3d75c60cd5c1cd0602d6a8ef90e7175f","html":"\u003cp\u003e修复 RLS 策略相关的关系缓存内存泄漏（Tom Lane）\u003ca href=\"https://postgr.es/c/f7873900f\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-fc30b1fb28ea1177","identity_text":"Fix relation cache memory leaks with RLS policies (Tom Lane)","part":"changes","patch_ids":["c24aa3c25cf4a9d607cd0598510176a8"],"related_changes":[{"db_id":"1d1e000571e98ddba13a80b34159607c","evidence":{"patch_ids":["c24aa3c25cf4a9d607cd0598510176a8"],"same_day":true,"statement_hash":"79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复 RLS 策略相关的关系缓存内存泄漏","url":"/docs/compare/?release=12.5#12.5-b4dac1df6e1c72f6","version":"12.5"},{"db_id":"96cd0fff2b6e9846599349b6ba5d2bd9","evidence":{"patch_ids":["c24aa3c25cf4a9d607cd0598510176a8"],"same_day":true,"statement_hash":"79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"修复 RLS 策略相关的关系缓存内存泄漏","url":"/docs/compare/?release=11.10#11.10-3873eccb92206723","version":"11.10"},{"db_id":"07c3f5f11a8d2c9b2f973d49833ab88a","evidence":{"patch_ids":["c24aa3c25cf4a9d607cd0598510176a8"],"same_day":true,"statement_hash":"79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"修复 RLS 策略相关的关系缓存内存泄漏","url":"/docs/compare/?release=10.15#10.15-3873eccb92206723","version":"10.15"},{"db_id":"b391f3e10b25d2204b81bd3ea8bad6d7","evidence":{"patch_ids":["c24aa3c25cf4a9d607cd0598510176a8"],"same_day":true,"statement_hash":"79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"修复 RLS 策略导致的关系缓存内存泄漏","url":"/docs/compare/?release=9.6.20#9.6.20-5a50c23ad7cada50","version":"9.6.20"},{"db_id":"7b847625301e69666a78bf22a37c5dbb","evidence":{"patch_ids":["c24aa3c25cf4a9d607cd0598510176a8"],"same_day":true,"statement_hash":"79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"修复 RLS 策略导致的关系缓存内存泄漏","url":"/docs/compare/?release=9.5.24#9.5.24-5a50c23ad7cada50","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["c24aa3c25cf4a9d607cd0598510176a8"],"same_day":true,"statement_hash":"79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"},"rule":2,"target":"07c3f5f11a8d2c9b2f973d49833ab88a","type":"equivalent"},{"evidence":{"patch_ids":["c24aa3c25cf4a9d607cd0598510176a8"],"same_day":true,"statement_hash":"79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"},"rule":2,"target":"1d1e000571e98ddba13a80b34159607c","type":"equivalent"},{"evidence":{"patch_ids":["c24aa3c25cf4a9d607cd0598510176a8"],"same_day":true,"statement_hash":"79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"},"rule":2,"target":"7b847625301e69666a78bf22a37c5dbb","type":"equivalent"},{"evidence":{"patch_ids":["c24aa3c25cf4a9d607cd0598510176a8"],"same_day":true,"statement_hash":"79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"},"rule":2,"target":"96cd0fff2b6e9846599349b6ba5d2bd9","type":"equivalent"},{"evidence":{"patch_ids":["c24aa3c25cf4a9d607cd0598510176a8"],"same_day":true,"statement_hash":"79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6"},"rule":2,"target":"b391f3e10b25d2204b81bd3ea8bad6d7","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["f7873900f"],"source_entry_id":"13.1/changes/035","source_hash":"096ad6f8eb03b2f42d659c9c1b7ae3f3ad7b9c4733ec65dfb4477fe6cc06b7e0","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"79cb4e31c8b65a7fae0c050240167102daaf3fa393b29d81235d95db94f424a6","text":"修复 RLS 策略相关的关系缓存内存泄漏（Tom Lane）§","title":"修复 RLS 策略相关的关系缓存内存泄漏","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["623644f02","8ad6a0c1b","d94d37f8c"],"commit_groups":[["623644f02","8ad6a0c1b","d94d37f8c"]],"commits":["d94d37f8c"],"cves":[],"db_id":"088d1b3fadfcf2a6de8436e9fd35ab47","html":"\u003cp\u003e修复 \u003ccode\u003eindex_get_partition()\u003c/code\u003e 在边界情况下的内存泄漏（Justin Pryzby）\u003ca href=\"https://postgr.es/c/d94d37f8c\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-f52a7d16d401d3dc","identity_text":"Fix edge-case memory leak in index_get_partition() (Justin Pryzby)","part":"changes","patch_ids":["8abd069b771dbc3d45325337ae61e3dd"],"related_changes":[{"db_id":"ae209c36e41012a6cf82f811f8f62e75","evidence":{"patch_ids":["8abd069b771dbc3d45325337ae61e3dd"],"same_day":true,"statement_hash":"bfa51173e680610ec586ca4a627bacb5fd70d0a766124b2bf5c1e75949063e00"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复 index_get_partition() 在边界情况下的内存泄漏","url":"/docs/compare/?release=12.5#12.5-80bb1a21a38a3a1c","version":"12.5"}],"relations":[{"evidence":{"patch_ids":["8abd069b771dbc3d45325337ae61e3dd"],"same_day":true,"statement_hash":"bfa51173e680610ec586ca4a627bacb5fd70d0a766124b2bf5c1e75949063e00"},"rule":2,"target":"ae209c36e41012a6cf82f811f8f62e75","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["d94d37f8c"],"source_entry_id":"13.1/changes/036","source_hash":"0f15b24996f5741dc9f1b3b0477df8519836ea9377fe283014aa889a96462389","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"bfa51173e680610ec586ca4a627bacb5fd70d0a766124b2bf5c1e75949063e00","text":"修复 index_get_partition() 在边界情况下的内存泄漏（Justin Pryzby）§","title":"修复 index_get_partition() 在边界情况下的内存泄漏","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["397ea901e","43ca5e07d","9343bfefa","a5c77e6b8","c7573ab1e","cfa4cff30","f35c11770"],"commit_groups":[["397ea901e","43ca5e07d","9343bfefa","a5c77e6b8","c7573ab1e","cfa4cff30","f35c11770"]],"commits":["9343bfefa"],"cves":[],"db_id":"a373153a55f8a80e8ddf4a2c75367c01","html":"\u003cp\u003e修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏（Tom Lane）\u003ca href=\"https://postgr.es/c/9343bfefa\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-6cc9fe20ad617d75","identity_text":"Fix small memory leak when SIGHUP processing decides that a new GUC variable value cannot be applied without a restart (Tom Lane)","part":"changes","patch_ids":["c33393f6e879fadc7ea327660916e5c1"],"related_changes":[{"db_id":"509d82dee875e19aea96bee48e3e49bf","evidence":{"patch_ids":["c33393f6e879fadc7ea327660916e5c1"],"same_day":true,"statement_hash":"ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏","url":"/docs/compare/?release=12.5#12.5-1d7c96a719aa7a02","version":"12.5"},{"db_id":"0be0283de15f1b9d28b4fe88d79cf481","evidence":{"patch_ids":["c33393f6e879fadc7ea327660916e5c1"],"same_day":true,"statement_hash":"ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏","url":"/docs/compare/?release=11.10#11.10-418a4d7581b7a8c6","version":"11.10"},{"db_id":"e3ce1a7779af456eb60753c476539994","evidence":{"patch_ids":["c33393f6e879fadc7ea327660916e5c1"],"same_day":true,"statement_hash":"ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏","url":"/docs/compare/?release=10.15#10.15-418a4d7581b7a8c6","version":"10.15"},{"db_id":"fb7d08b18e099bd56d514ea6ca3b5ea0","evidence":{"patch_ids":["c33393f6e879fadc7ea327660916e5c1"],"same_day":true,"statement_hash":"ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"修复 SIGHUP 处理判定新的 GUC 变量值必须重启才能应用时的小内存泄漏","url":"/docs/compare/?release=9.6.20#9.6.20-53884971cdd88e59","version":"9.6.20"},{"db_id":"82baed7f6bc4e4089d9fa33cd5906ed1","evidence":{"patch_ids":["c33393f6e879fadc7ea327660916e5c1"],"same_day":true,"statement_hash":"ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"修复 SIGHUP 处理判定新的 GUC 变量值必须重启才能应用时的小内存泄漏","url":"/docs/compare/?release=9.5.24#9.5.24-53884971cdd88e59","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["c33393f6e879fadc7ea327660916e5c1"],"same_day":true,"statement_hash":"ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"},"rule":2,"target":"0be0283de15f1b9d28b4fe88d79cf481","type":"equivalent"},{"evidence":{"patch_ids":["c33393f6e879fadc7ea327660916e5c1"],"same_day":true,"statement_hash":"ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"},"rule":2,"target":"509d82dee875e19aea96bee48e3e49bf","type":"equivalent"},{"evidence":{"patch_ids":["c33393f6e879fadc7ea327660916e5c1"],"same_day":true,"statement_hash":"ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"},"rule":2,"target":"82baed7f6bc4e4089d9fa33cd5906ed1","type":"equivalent"},{"evidence":{"patch_ids":["c33393f6e879fadc7ea327660916e5c1"],"same_day":true,"statement_hash":"ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"},"rule":2,"target":"e3ce1a7779af456eb60753c476539994","type":"equivalent"},{"evidence":{"patch_ids":["c33393f6e879fadc7ea327660916e5c1"],"same_day":true,"statement_hash":"ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00"},"rule":2,"target":"fb7d08b18e099bd56d514ea6ca3b5ea0","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["9343bfefa"],"source_entry_id":"13.1/changes/037","source_hash":"f3f9a595812e2ce0827c9f09953ba19e5a0e17a45df25ebaba80b84ab2e42b9c","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"ebb2c0e9b0854b0d6d7dad9a3f3dfa2d53fea99cc4b20ca90b674c1555c26f00","text":"修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏（Tom Lane）§","title":"修复 SIGHUP 处理判定某个 GUC 变量的新值必须重启才能应用时出现的小量内存泄漏","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["13a1901ba","a6b1f5365","c1e044bb3","f0e4ec74e"],"commit_groups":[["13a1901ba","a6b1f5365","c1e044bb3","f0e4ec74e"]],"commits":["f0e4ec74e"],"cves":[],"db_id":"f091620e4b07fff3fdc8824f15494487","html":"\u003cp\u003e修复 \u003cspan\u003ePL/pgsql\u003c/span\u003e 的 \u003ccode\u003eCALL\u003c/code\u003e 处理中的内存泄漏（Pavel Stehule，Tom Lane）\u003ca href=\"https://postgr.es/c/f0e4ec74e\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-5d78588bfec39c5a","identity_text":"Fix memory leaks in PL/pgsql's CALL processing (Pavel Stehule, Tom Lane)","part":"changes","patch_ids":["350df6d49f15995f06df958aaeabe314"],"related_changes":[{"db_id":"ebd7cdb9cf09146bff9cc934504b0268","evidence":{"patch_ids":["350df6d49f15995f06df958aaeabe314"],"same_day":true,"statement_hash":"c97d124169f3a40de3e5f38f514078208298c8b00f830e234fcae66e6fcc0424"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复 PL/pgsql 的 CALL 处理中的内存泄漏","url":"/docs/compare/?release=12.5#12.5-866265e1d961abac","version":"12.5"},{"db_id":"2a4ce31836e51abb821e20352c7759b1","evidence":{"patch_ids":["350df6d49f15995f06df958aaeabe314"],"same_day":true,"statement_hash":"c97d124169f3a40de3e5f38f514078208298c8b00f830e234fcae66e6fcc0424"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"修复 PL/pgsql 的 CALL 处理中的内存泄漏","url":"/docs/compare/?release=11.10#11.10-b7f618c877c9b2ff","version":"11.10"}],"relations":[{"evidence":{"patch_ids":["350df6d49f15995f06df958aaeabe314"],"same_day":true,"statement_hash":"c97d124169f3a40de3e5f38f514078208298c8b00f830e234fcae66e6fcc0424"},"rule":2,"target":"2a4ce31836e51abb821e20352c7759b1","type":"equivalent"},{"evidence":{"patch_ids":["350df6d49f15995f06df958aaeabe314"],"same_day":true,"statement_hash":"c97d124169f3a40de3e5f38f514078208298c8b00f830e234fcae66e6fcc0424"},"rule":2,"target":"ebd7cdb9cf09146bff9cc934504b0268","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["f0e4ec74e"],"source_entry_id":"13.1/changes/038","source_hash":"537aa8499a8add15cf19ac44e81b907d78b599ab6e032bed603e6110b75eb464","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"c97d124169f3a40de3e5f38f514078208298c8b00f830e234fcae66e6fcc0424","text":"修复 PL/pgsql 的 CALL 处理中的内存泄漏（Pavel Stehule，Tom Lane）§","title":"修复 PL/pgsql 的 CALL 处理中的内存泄漏","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["407580aab","6670e9107","6acc31a20","7d00a6b2d","883226441","cdc7ace16","d2074daeb"],"commit_groups":[["407580aab","6670e9107","6acc31a20","7d00a6b2d","883226441","cdc7ace16","d2074daeb"]],"commits":["d2074daeb"],"cves":[],"db_id":"e172f23ad3c58dbb9c06c75a27dbccc8","html":"\u003cp\u003e在 Windows 版 \u003cspan\u003elibpq\u003c/span\u003e 中，每个进程只调用一次 \u003ccode\u003eWSAStartup()\u003c/code\u003e，完全不调用 \u003ccode\u003eWSACleanup()\u003c/code\u003e（Tom Lane，Alexander Lakhin）\u003ca href=\"https://postgr.es/c/d2074daeb\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e以前，\u003cspan\u003elibpq\u003c/span\u003e 在连接开始时调用 \u003ccode\u003eWSAStartup()\u003c/code\u003e，在连接清理时调用 \u003ccode\u003eWSACleanup()\u003c/code\u003e。但调用 \u003ccode\u003eWSACleanup()\u003c/code\u003e 似乎会干扰程序的其他操作；特别是，我们观察到过无法将预期输出写入 stdout 的罕见失败。省略该调用似乎没有不良影响，因此予以省略。（这还消除了程序执行一连串数据库连接时，反复加载和卸载 DLL 所造成的性能问题。）\u003c/p\u003e","id":"13.1-6506f10a9caa9696","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.)","part":"changes","patch_ids":["bd2de89de7c58c241872e1d25f8c6962"],"related_changes":[{"db_id":"b2230b031cd5496b65a99fb8f06b34a6","evidence":{"patch_ids":["bd2de89de7c58c241872e1d25f8c6962"],"same_day":true,"statement_hash":"53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()","url":"/docs/compare/?release=12.5#12.5-e80962d233c1a58a","version":"12.5"},{"db_id":"49590203e538551c9c91e4b6b8ad895d","evidence":{"patch_ids":["bd2de89de7c58c241872e1d25f8c6962"],"same_day":true,"statement_hash":"53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()","url":"/docs/compare/?release=11.10#11.10-16475b1bf65ba826","version":"11.10"},{"db_id":"e5f84643de5061ea41929a264d95d11f","evidence":{"patch_ids":["bd2de89de7c58c241872e1d25f8c6962"],"same_day":true,"statement_hash":"53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()","url":"/docs/compare/?release=10.15#10.15-16475b1bf65ba826","version":"10.15"},{"db_id":"b799ee795c42f584d54fb75fe00674ad","evidence":{"patch_ids":["bd2de89de7c58c241872e1d25f8c6962"],"same_day":true,"statement_hash":"53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"在 Windows 的 libpq 中，每进程调用一次 WSAStartup()，完全不调用 WSACleanup()","url":"/docs/compare/?release=9.6.20#9.6.20-c7326ef3480a3d5e","version":"9.6.20"},{"db_id":"ff3e868befa45aef3ed64fbcffa619da","evidence":{"patch_ids":["bd2de89de7c58c241872e1d25f8c6962"],"same_day":true,"statement_hash":"53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"在 Windows 的 libpq 中，每进程调用一次 WSAStartup()，完全不调用 WSACleanup()","url":"/docs/compare/?release=9.5.24#9.5.24-c7326ef3480a3d5e","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["bd2de89de7c58c241872e1d25f8c6962"],"same_day":true,"statement_hash":"53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"},"rule":2,"target":"49590203e538551c9c91e4b6b8ad895d","type":"equivalent"},{"evidence":{"patch_ids":["bd2de89de7c58c241872e1d25f8c6962"],"same_day":true,"statement_hash":"53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"},"rule":2,"target":"b2230b031cd5496b65a99fb8f06b34a6","type":"equivalent"},{"evidence":{"patch_ids":["bd2de89de7c58c241872e1d25f8c6962"],"same_day":true,"statement_hash":"53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"},"rule":2,"target":"b799ee795c42f584d54fb75fe00674ad","type":"equivalent"},{"evidence":{"patch_ids":["bd2de89de7c58c241872e1d25f8c6962"],"same_day":true,"statement_hash":"53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"},"rule":2,"target":"e5f84643de5061ea41929a264d95d11f","type":"equivalent"},{"evidence":{"patch_ids":["bd2de89de7c58c241872e1d25f8c6962"],"same_day":true,"statement_hash":"53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4"},"rule":2,"target":"ff3e868befa45aef3ed64fbcffa619da","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["d2074daeb"],"source_entry_id":"13.1/changes/039","source_hash":"30f35c0b7e1d487d22d1f3d76e300fb4c275fbce57e8903cfb984ae303403698","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"53d8663be6ae9751ccb3dde62703a45a228e9f4f6d96f1b92d0100eb51f5d1c4","text":"在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()（Tom Lane，Alexander Lakhin）§ 以前，libpq 在连接开始时调用 WSAStartup()，在连接清理时调用 WSACleanup()。但调用 WSACleanup() 似乎会干扰程序的其他操作；特别是，我们观察到过无法将预期输出写入 stdout 的罕见失败。省略该调用似乎没有不良影响，因此予以省略。（这还消除了程序执行一连串数据库连接时，反复加载和卸载 DLL 所造成的性能问题。）","title":"在 Windows 版 libpq 中，每个进程只调用一次 WSAStartup()，完全不调用 WSACleanup()","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["12a73f29f","21d36747d","379c43bda","758b45e83","bdc79ddd1","f38b66ec0","fd048e0cb"],"commit_groups":[["12a73f29f","21d36747d","379c43bda","758b45e83","bdc79ddd1","f38b66ec0","fd048e0cb"]],"commits":["fd048e0cb"],"cves":[],"db_id":"694cc9062e942a7e36d2268cc47ca86b","html":"\u003cp\u003e修复 \u003cspan\u003eecpg\u003c/span\u003e 库在 Windows 上的逐线程初始化逻辑（Tom Lane，Alexander Lakhin）\u003ca href=\"https://postgr.es/c/fd048e0cb\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e多线程 \u003cspan\u003eecpg\u003c/span\u003e 应用可能因锁定不正确而偶发行为异常。\u003c/p\u003e","id":"13.1-2267e558b078d8ca","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.","part":"changes","patch_ids":["bb9293718d8ff1ab911d92ebe44317c6"],"related_changes":[{"db_id":"c250772a9e8ab85f9074deec9d995871","evidence":{"patch_ids":["bb9293718d8ff1ab911d92ebe44317c6"],"same_day":true,"statement_hash":"bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复 ecpg 库在 Windows 上的逐线程初始化逻辑","url":"/docs/compare/?release=12.5#12.5-2d54e279cfe61ffc","version":"12.5"},{"db_id":"b685c8ce1e0ac047162d851829393e09","evidence":{"patch_ids":["bb9293718d8ff1ab911d92ebe44317c6"],"same_day":true,"statement_hash":"bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"修复 ecpg 库在 Windows 上的逐线程初始化逻辑","url":"/docs/compare/?release=11.10#11.10-8f267a5ed7701a1a","version":"11.10"},{"db_id":"0c91ba08f7a39546e2d58212d390fb9f","evidence":{"patch_ids":["bb9293718d8ff1ab911d92ebe44317c6"],"same_day":true,"statement_hash":"bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"修复 ecpg 库在 Windows 上的逐线程初始化逻辑","url":"/docs/compare/?release=10.15#10.15-8f267a5ed7701a1a","version":"10.15"},{"db_id":"bdf254d55b6f5ae4944f832d4e4aba90","evidence":{"patch_ids":["bb9293718d8ff1ab911d92ebe44317c6"],"same_day":true,"statement_hash":"bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"修复 ecpg 库在 Windows 上的每线程初始化逻辑","url":"/docs/compare/?release=9.6.20#9.6.20-a0471424af6bfc5b","version":"9.6.20"},{"db_id":"1ed5dde67f6486babd2a0d24dffdc57d","evidence":{"patch_ids":["bb9293718d8ff1ab911d92ebe44317c6"],"same_day":true,"statement_hash":"bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"修复 ecpg 库在 Windows 上的每线程初始化逻辑","url":"/docs/compare/?release=9.5.24#9.5.24-a0471424af6bfc5b","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["bb9293718d8ff1ab911d92ebe44317c6"],"same_day":true,"statement_hash":"bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"},"rule":2,"target":"0c91ba08f7a39546e2d58212d390fb9f","type":"equivalent"},{"evidence":{"patch_ids":["bb9293718d8ff1ab911d92ebe44317c6"],"same_day":true,"statement_hash":"bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"},"rule":2,"target":"1ed5dde67f6486babd2a0d24dffdc57d","type":"equivalent"},{"evidence":{"patch_ids":["bb9293718d8ff1ab911d92ebe44317c6"],"same_day":true,"statement_hash":"bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"},"rule":2,"target":"b685c8ce1e0ac047162d851829393e09","type":"equivalent"},{"evidence":{"patch_ids":["bb9293718d8ff1ab911d92ebe44317c6"],"same_day":true,"statement_hash":"bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"},"rule":2,"target":"bdf254d55b6f5ae4944f832d4e4aba90","type":"equivalent"},{"evidence":{"patch_ids":["bb9293718d8ff1ab911d92ebe44317c6"],"same_day":true,"statement_hash":"bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6"},"rule":2,"target":"c250772a9e8ab85f9074deec9d995871","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["fd048e0cb"],"source_entry_id":"13.1/changes/040","source_hash":"49c485eeabd8c356b1fcf18354982bdab01c51f58da016bb1051b51c078c52ba","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"bff07dc16c24f2d4b16cc80208cbf23717742f46ffffda22427c03dfe30950c6","text":"修复 ecpg 库在 Windows 上的逐线程初始化逻辑（Tom Lane，Alexander Lakhin）§ 多线程 ecpg 应用可能因锁定不正确而偶发行为异常。","title":"修复 ecpg 库在 Windows 上的逐线程初始化逻辑","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["1bccb159a","1e3868ab3","3459f4169","eed4356fa"],"commit_groups":[["1bccb159a","1e3868ab3"],["3459f4169","eed4356fa"]],"commits":["1bccb159a","3459f4169"],"cves":[],"db_id":"a08fe04d61afb8178d933155b3737bea","html":"\u003cp\u003e修复 \u003cspan\u003eecpg\u003c/span\u003e 对 \u003ccode\u003eB'...'\u003c/code\u003e 和 \u003ccode\u003eX'...'\u003c/code\u003e 字面值的错误处理（Shenhao Wang）\u003ca href=\"https://postgr.es/c/1bccb159a\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/3459f4169\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-ad1f4baef6ff3b3e","identity_text":"Fix ecpg's mis-processing of B'...' and X'...' literals (Shenhao Wang)","part":"changes","patch_ids":["dd72512849fa7f3121d16328e0541cd1","fd71aa8102431bf28f00a8e4c03dd505"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["1bccb159a","3459f4169"],"source_entry_id":"13.1/changes/041","source_hash":"1d8e9fbe9be368dd51d803670ed0657b13fdf2067b048443e65cef25834298f6","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"c6d88d3306c36ba8b8362d2b83857ec91e1028ae965376bfee3bdb3a82ec54d6","text":"修复 ecpg 对 B'...' 和 X'...' 字面值的错误处理（Shenhao Wang）§ §","title":"修复 ecpg 对 B'...' 和 X'...' 字面值的错误处理","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["204d77969","504f963f7","66f8687a8","9eb250339","aff06436c","ba4f5413e","cb0982ba9"],"commit_groups":[["204d77969","504f963f7","66f8687a8","9eb250339","aff06436c","ba4f5413e","cb0982ba9"]],"commits":["ba4f5413e"],"cves":[],"db_id":"4913189de70c687d45c2182a4f59108c","html":"\u003cp\u003e在 Windows 上，使 \u003cspan\u003epsql\u003c/span\u003e 以文本模式而非二进制模式读取反引号命令的输出（Tom Lane）\u003ca href=\"https://postgr.es/c/ba4f5413e\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这可以确保正确处理换行符。\u003c/p\u003e","id":"13.1-56791cce9174d808","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.","part":"changes","patch_ids":["f0676a6fd578633b244e3954ef8f397e"],"related_changes":[{"db_id":"acc4b62da548c94c0aaf301e49228dab","evidence":{"patch_ids":["f0676a6fd578633b244e3954ef8f397e"],"same_day":true,"statement_hash":"147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出","url":"/docs/compare/?release=12.5#12.5-57376eee8ffa54c5","version":"12.5"},{"db_id":"53bb8143f97e643054b70a519a5cd076","evidence":{"patch_ids":["f0676a6fd578633b244e3954ef8f397e"],"same_day":true,"statement_hash":"147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出","url":"/docs/compare/?release=11.10#11.10-32081410b5ff0fa7","version":"11.10"},{"db_id":"f6660ce4942f7be69fae916d43edbb2c","evidence":{"patch_ids":["f0676a6fd578633b244e3954ef8f397e"],"same_day":true,"statement_hash":"147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出","url":"/docs/compare/?release=10.15#10.15-32081410b5ff0fa7","version":"10.15"},{"db_id":"9b1ff42f9ce9a78c5329d18bf7b57a2c","evidence":{"patch_ids":["f0676a6fd578633b244e3954ef8f397e"],"same_day":true,"statement_hash":"147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"在 Windows 上，让 psql 以文本模式而非二进制模式读取反引号命令的输出","url":"/docs/compare/?release=9.6.20#9.6.20-8ec23b68565f2603","version":"9.6.20"},{"db_id":"12b9e9de7e0b7392bbc1d550c6cd6df6","evidence":{"patch_ids":["f0676a6fd578633b244e3954ef8f397e"],"same_day":true,"statement_hash":"147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"在 Windows 上，让 psql 以文本模式而非二进制模式读取反引号命令的输出","url":"/docs/compare/?release=9.5.24#9.5.24-8ec23b68565f2603","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["f0676a6fd578633b244e3954ef8f397e"],"same_day":true,"statement_hash":"147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"},"rule":2,"target":"12b9e9de7e0b7392bbc1d550c6cd6df6","type":"equivalent"},{"evidence":{"patch_ids":["f0676a6fd578633b244e3954ef8f397e"],"same_day":true,"statement_hash":"147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"},"rule":2,"target":"53bb8143f97e643054b70a519a5cd076","type":"equivalent"},{"evidence":{"patch_ids":["f0676a6fd578633b244e3954ef8f397e"],"same_day":true,"statement_hash":"147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"},"rule":2,"target":"9b1ff42f9ce9a78c5329d18bf7b57a2c","type":"equivalent"},{"evidence":{"patch_ids":["f0676a6fd578633b244e3954ef8f397e"],"same_day":true,"statement_hash":"147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"},"rule":2,"target":"acc4b62da548c94c0aaf301e49228dab","type":"equivalent"},{"evidence":{"patch_ids":["f0676a6fd578633b244e3954ef8f397e"],"same_day":true,"statement_hash":"147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0"},"rule":2,"target":"f6660ce4942f7be69fae916d43edbb2c","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["ba4f5413e"],"source_entry_id":"13.1/changes/042","source_hash":"e78b32b413c7b8ea487709fdca3bf36ce137e3016cc9d6d1d2de5290a75fa4ce","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"147d56f6b961c6a8edec12ec9b0202a87651e641b126376307f1ceff34e989e0","text":"在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出（Tom Lane）§ 这可以确保正确处理换行符。","title":"在 Windows 上，使 psql 以文本模式而非二进制模式读取反引号命令的输出","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["0bfe356c5","0c79dcb36","2ea624b4b","3eb3d3e78","616110eac","710c0a66d","72857482c","9e5f1f21a","d8c2a2199","f2c6e94f0"],"commit_groups":[["0bfe356c5","0c79dcb36","2ea624b4b","710c0a66d","9e5f1f21a","d8c2a2199","f2c6e94f0"],["3eb3d3e78","616110eac","72857482c"]],"commits":["2ea624b4b","72857482c"],"cves":[],"db_id":"492efa905a110daab55e63b023fda63d","html":"\u003cp\u003e确保 \u003cspan\u003epg_dump\u003c/span\u003e 收集扩展配置表的逐列信息（Fabrízio de Royes Mello，Tom Lane）\u003ca href=\"https://postgr.es/c/72857482c\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/2ea624b4b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e未能这样做会导致指定 \u003ccode\u003e--inserts\u003c/code\u003e 时崩溃，或在使用 \u003ccode\u003eCOPY\u003c/code\u003e 重载表数据时生成指定不完整（虽然通常正确）的 \u003ccode\u003eCOPY\u003c/code\u003e 命令。\u003c/p\u003e","id":"13.1-289eab149154ff12","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.","part":"changes","patch_ids":["02c8ade13193991cd3513a0d65d12f48","ad39259a02a217957e5e087530b515e1"],"related_changes":[{"db_id":"e75980d75dea2292bf4b5340ea8c6f24","evidence":{"patch_ids":["02c8ade13193991cd3513a0d65d12f48","ad39259a02a217957e5e087530b515e1"],"same_day":true,"statement_hash":"5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"确保 pg_dump 收集扩展配置表的逐列信息","url":"/docs/compare/?release=12.5#12.5-dfe9b23fbfb99337","version":"12.5"},{"db_id":"85b52706041163f2bfee5e624f8f1742","evidence":{"patch_ids":["02c8ade13193991cd3513a0d65d12f48","ad39259a02a217957e5e087530b515e1"],"same_day":true,"statement_hash":"5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"确保 pg_dump 收集扩展配置表的逐列信息","url":"/docs/compare/?release=11.10#11.10-e219d3bedd5c79f3","version":"11.10"},{"db_id":"65fb8ca7077f8c4ac19b871ef61dbc21","evidence":{"patch_ids":["02c8ade13193991cd3513a0d65d12f48","ad39259a02a217957e5e087530b515e1"],"same_day":true,"statement_hash":"5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"确保 pg_dump 收集扩展配置表的逐列信息","url":"/docs/compare/?release=10.15#10.15-e219d3bedd5c79f3","version":"10.15"},{"db_id":"881989477a3ccb0c1e3be1c41ac86018","evidence":{"patch_ids":["02c8ade13193991cd3513a0d65d12f48","ad39259a02a217957e5e087530b515e1"],"same_day":true,"statement_hash":"5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"确保 pg_dump 收集扩展配置表的逐列信息","url":"/docs/compare/?release=9.6.20#9.6.20-e219d3bedd5c79f3","version":"9.6.20"},{"db_id":"51e97125f2d3faef60a22cf9e030b5e0","evidence":{"patch_ids":["02c8ade13193991cd3513a0d65d12f48","ad39259a02a217957e5e087530b515e1"],"same_day":true,"statement_hash":"5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"确保 pg_dump 收集扩展配置表的逐列信息","url":"/docs/compare/?release=9.5.24#9.5.24-e219d3bedd5c79f3","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["02c8ade13193991cd3513a0d65d12f48","ad39259a02a217957e5e087530b515e1"],"same_day":true,"statement_hash":"5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"},"rule":2,"target":"51e97125f2d3faef60a22cf9e030b5e0","type":"equivalent"},{"evidence":{"patch_ids":["02c8ade13193991cd3513a0d65d12f48","ad39259a02a217957e5e087530b515e1"],"same_day":true,"statement_hash":"5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"},"rule":2,"target":"65fb8ca7077f8c4ac19b871ef61dbc21","type":"equivalent"},{"evidence":{"patch_ids":["02c8ade13193991cd3513a0d65d12f48","ad39259a02a217957e5e087530b515e1"],"same_day":true,"statement_hash":"5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"},"rule":2,"target":"85b52706041163f2bfee5e624f8f1742","type":"equivalent"},{"evidence":{"patch_ids":["02c8ade13193991cd3513a0d65d12f48","ad39259a02a217957e5e087530b515e1"],"same_day":true,"statement_hash":"5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"},"rule":2,"target":"881989477a3ccb0c1e3be1c41ac86018","type":"equivalent"},{"evidence":{"patch_ids":["02c8ade13193991cd3513a0d65d12f48","ad39259a02a217957e5e087530b515e1"],"same_day":true,"statement_hash":"5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c"},"rule":2,"target":"e75980d75dea2292bf4b5340ea8c6f24","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["2ea624b4b","72857482c"],"source_entry_id":"13.1/changes/043","source_hash":"001c37105ca5308fd63698cf6685abc733b5d7bff2c58c06297af63b835d5e73","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"5912f05edc6ccabcca05e0be86776fc6d15c54b7a14dfffb6855bf58a240b42c","text":"确保 pg_dump 收集扩展配置表的逐列信息（Fabrízio de Royes Mello，Tom Lane）§ § 未能这样做会导致指定 --inserts 时崩溃，或在使用 COPY 重载表数据时生成指定不完整（虽然通常正确）的 COPY 命令。","title":"确保 pg_dump 收集扩展配置表的逐列信息","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["0ab7ca98a","16be4e435","39c23c199","3c0471b5f","536de14e2","59cfff65b","6e34cc8ab","79fe23465","85fedf39f","9dcffe69a","a106236d8","b05672c72","d9ae2297b","eb421c83b"],"commit_groups":[["0ab7ca98a","16be4e435","536de14e2","6e34cc8ab","79fe23465","9dcffe69a","b05672c72"],["39c23c199","3c0471b5f","59cfff65b","85fedf39f","a106236d8","d9ae2297b","eb421c83b"]],"commits":["59cfff65b","79fe23465"],"cves":[],"db_id":"98c82203e1de7fa217bd04b22e341a62","html":"\u003cp\u003e使 \u003cspan\u003epg_upgrade\u003c/span\u003e 检查目标集群中的表空间目录是否已存在（Bruce Momjian）\u003ca href=\"https://postgr.es/c/59cfff65b\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/79fe23465\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-75fe4af2348b834a","identity_text":"Make pg_upgrade check for pre-existence of tablespace directories in the target cluster (Bruce Momjian)","part":"changes","patch_ids":["385da7b634c4d18cad66323aed6e5396","3d023e2eb93a8c3bf9b9c1a6fcef7726"],"related_changes":[{"db_id":"487015ba212a94883add480a0161d282","evidence":{"patch_ids":["385da7b634c4d18cad66323aed6e5396","3d023e2eb93a8c3bf9b9c1a6fcef7726"],"same_day":true,"statement_hash":"5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"使 pg_upgrade 检查目标集群中的表空间目录是否已存在","url":"/docs/compare/?release=12.5#12.5-4b61295613a298fd","version":"12.5"},{"db_id":"97763d342fba71c440133e01ec21602b","evidence":{"patch_ids":["385da7b634c4d18cad66323aed6e5396","3d023e2eb93a8c3bf9b9c1a6fcef7726"],"same_day":true,"statement_hash":"5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"使 pg_upgrade 检查目标集群中的表空间目录是否已存在","url":"/docs/compare/?release=11.10#11.10-afa10de72fe92b10","version":"11.10"},{"db_id":"6359b4855420c50bac500e091bcf21ac","evidence":{"patch_ids":["385da7b634c4d18cad66323aed6e5396","3d023e2eb93a8c3bf9b9c1a6fcef7726"],"same_day":true,"statement_hash":"5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"使 pg_upgrade 检查目标集群中的表空间目录是否已存在","url":"/docs/compare/?release=10.15#10.15-afa10de72fe92b10","version":"10.15"},{"db_id":"d0d308a14a919dcdd011ad9f5ffbb853","evidence":{"patch_ids":["385da7b634c4d18cad66323aed6e5396","3d023e2eb93a8c3bf9b9c1a6fcef7726"],"same_day":true,"statement_hash":"5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"让 pg_upgrade 检查目标集簇中表空间目录的预先存在","url":"/docs/compare/?release=9.6.20#9.6.20-a8ab8dfebde36bbb","version":"9.6.20"},{"db_id":"9cabfbf717fd03e9b875f151dac12f27","evidence":{"patch_ids":["385da7b634c4d18cad66323aed6e5396","3d023e2eb93a8c3bf9b9c1a6fcef7726"],"same_day":true,"statement_hash":"5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"让 pg_upgrade 检查目标集簇中表空间目录的预先存在","url":"/docs/compare/?release=9.5.24#9.5.24-a8ab8dfebde36bbb","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["385da7b634c4d18cad66323aed6e5396","3d023e2eb93a8c3bf9b9c1a6fcef7726"],"same_day":true,"statement_hash":"5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"},"rule":2,"target":"487015ba212a94883add480a0161d282","type":"equivalent"},{"evidence":{"patch_ids":["385da7b634c4d18cad66323aed6e5396","3d023e2eb93a8c3bf9b9c1a6fcef7726"],"same_day":true,"statement_hash":"5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"},"rule":2,"target":"6359b4855420c50bac500e091bcf21ac","type":"equivalent"},{"evidence":{"patch_ids":["385da7b634c4d18cad66323aed6e5396","3d023e2eb93a8c3bf9b9c1a6fcef7726"],"same_day":true,"statement_hash":"5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"},"rule":2,"target":"97763d342fba71c440133e01ec21602b","type":"equivalent"},{"evidence":{"patch_ids":["385da7b634c4d18cad66323aed6e5396","3d023e2eb93a8c3bf9b9c1a6fcef7726"],"same_day":true,"statement_hash":"5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"},"rule":2,"target":"9cabfbf717fd03e9b875f151dac12f27","type":"equivalent"},{"evidence":{"patch_ids":["385da7b634c4d18cad66323aed6e5396","3d023e2eb93a8c3bf9b9c1a6fcef7726"],"same_day":true,"statement_hash":"5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740"},"rule":2,"target":"d0d308a14a919dcdd011ad9f5ffbb853","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["59cfff65b","79fe23465"],"source_entry_id":"13.1/changes/044","source_hash":"57ad146800c213e69e924e337b5a57b542a5556ced40deb010d2a0095db41996","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"5753b5a81159391dd0515c2940fa9293fcd8bb43236bb449f206e9af55aed740","text":"使 pg_upgrade 检查目标集群中的表空间目录是否已存在（Bruce Momjian）§ §","title":"使 pg_upgrade 检查目标集群中的表空间目录是否已存在","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["099238322","1bd9b2b23","57bdf29dd","914139081","994a02f7f","ca2a12c93","e8d36f9ec"],"commit_groups":[["099238322","1bd9b2b23","57bdf29dd","914139081","994a02f7f","ca2a12c93","e8d36f9ec"]],"commits":["1bd9b2b23"],"cves":[],"db_id":"45ceced99bffb96ca8569d3037b11626","html":"\u003cp\u003e修复 \u003ccode\u003econtrib/pgcrypto\u003c/code\u003e 中潜在的内存泄漏（Michael Paquier）\u003ca href=\"https://postgr.es/c/1bd9b2b23\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-a00da32fc1ac8675","identity_text":"Fix potential memory leak in contrib/pgcrypto (Michael Paquier)","part":"changes","patch_ids":["fcad37cf0a78e9c69dccacbe62ebb55e"],"related_changes":[{"db_id":"b7f3d4c288208e0731eaebf124833acb","evidence":{"patch_ids":["fcad37cf0a78e9c69dccacbe62ebb55e"],"same_day":true,"statement_hash":"c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复 contrib/pgcrypto 中潜在的内存泄漏","url":"/docs/compare/?release=12.5#12.5-d5c4b8e65d7a01af","version":"12.5"},{"db_id":"98075fcb9c2c925ab7ae15b877964c92","evidence":{"patch_ids":["fcad37cf0a78e9c69dccacbe62ebb55e"],"same_day":true,"statement_hash":"c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"修复 contrib/pgcrypto 中潜在的内存泄漏","url":"/docs/compare/?release=11.10#11.10-c708d505f68a3e88","version":"11.10"},{"db_id":"1cea404266f3f4251614e74fb269c3c6","evidence":{"patch_ids":["fcad37cf0a78e9c69dccacbe62ebb55e"],"same_day":true,"statement_hash":"c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"修复 contrib/pgcrypto 中潜在的内存泄漏","url":"/docs/compare/?release=10.15#10.15-c708d505f68a3e88","version":"10.15"},{"db_id":"84f48de4e35f0e3df8a91dd97a3c1ace","evidence":{"patch_ids":["fcad37cf0a78e9c69dccacbe62ebb55e"],"same_day":true,"statement_hash":"c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"修复 contrib/pgcrypto 中潜在的内存泄漏","url":"/docs/compare/?release=9.6.20#9.6.20-c708d505f68a3e88","version":"9.6.20"},{"db_id":"a090170563e74e2c4325af5b54d15723","evidence":{"patch_ids":["fcad37cf0a78e9c69dccacbe62ebb55e"],"same_day":true,"statement_hash":"c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"修复 contrib/pgcrypto 中潜在的内存泄漏","url":"/docs/compare/?release=9.5.24#9.5.24-c708d505f68a3e88","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["fcad37cf0a78e9c69dccacbe62ebb55e"],"same_day":true,"statement_hash":"c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"},"rule":2,"target":"1cea404266f3f4251614e74fb269c3c6","type":"equivalent"},{"evidence":{"patch_ids":["fcad37cf0a78e9c69dccacbe62ebb55e"],"same_day":true,"statement_hash":"c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"},"rule":2,"target":"84f48de4e35f0e3df8a91dd97a3c1ace","type":"equivalent"},{"evidence":{"patch_ids":["fcad37cf0a78e9c69dccacbe62ebb55e"],"same_day":true,"statement_hash":"c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"},"rule":2,"target":"98075fcb9c2c925ab7ae15b877964c92","type":"equivalent"},{"evidence":{"patch_ids":["fcad37cf0a78e9c69dccacbe62ebb55e"],"same_day":true,"statement_hash":"c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"},"rule":2,"target":"a090170563e74e2c4325af5b54d15723","type":"equivalent"},{"evidence":{"patch_ids":["fcad37cf0a78e9c69dccacbe62ebb55e"],"same_day":true,"statement_hash":"c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3"},"rule":2,"target":"b7f3d4c288208e0731eaebf124833acb","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["1bd9b2b23"],"source_entry_id":"13.1/changes/045","source_hash":"df25dc1f5f0f221a3b377e6f7b79460ca42fdc712dce6432dd15ce7d465fb378","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"c3d441978e33a71f08db237f8526b36fbb128520c138bb96c3f9af6473ab59b3","text":"修复 contrib/pgcrypto 中潜在的内存泄漏（Michael Paquier）§","title":"修复 contrib/pgcrypto 中潜在的内存泄漏","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["02a75f836","1eb2d7e3e","3d338a46a","3e1a4c260","7004ce758","9c3032881","e15115b4d"],"commit_groups":[["02a75f836","1eb2d7e3e","3d338a46a","3e1a4c260","7004ce758","9c3032881","e15115b4d"]],"commits":["3d338a46a"],"cves":[],"db_id":"693a364e73f018703ffd62b9539df0e4","html":"\u003cp\u003e在 \u003ccode\u003econtrib/pgcrypto\u003c/code\u003e 中增加对一种不太可能发生的失败情况的检查（Daniel Gustafsson）\u003ca href=\"https://postgr.es/c/3d338a46a\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-94626e77d35a3bca","identity_text":"Add check for an unlikely failure case in contrib/pgcrypto (Daniel Gustafsson)","part":"changes","patch_ids":["4f04e866de664fee005bc1be03012a43"],"related_changes":[{"db_id":"3c818cf27839b50c64d7fe4ebfc48a48","evidence":{"patch_ids":["4f04e866de664fee005bc1be03012a43"],"same_day":true,"statement_hash":"a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查","url":"/docs/compare/?release=12.5#12.5-c48c2f474d5286b5","version":"12.5"},{"db_id":"3cb5853a4b4a15ef6c0d06d259305fe2","evidence":{"patch_ids":["4f04e866de664fee005bc1be03012a43"],"same_day":true,"statement_hash":"a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查","url":"/docs/compare/?release=11.10#11.10-d014e971353ca539","version":"11.10"},{"db_id":"ea8273c89c569c3245f6055814b1914d","evidence":{"patch_ids":["4f04e866de664fee005bc1be03012a43"],"same_day":true,"statement_hash":"a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查","url":"/docs/compare/?release=10.15#10.15-d014e971353ca539","version":"10.15"},{"db_id":"dbac2d5baf492e2785e215805432046b","evidence":{"patch_ids":["4f04e866de664fee005bc1be03012a43"],"same_day":true,"statement_hash":"a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"在 contrib/pgcrypto 中为一个不太可能发生的失败情况添加检查","url":"/docs/compare/?release=9.6.20#9.6.20-c4df30e1bb4d4367","version":"9.6.20"},{"db_id":"0d5d2e9e50fda96c7c7a5634bd6c0240","evidence":{"patch_ids":["4f04e866de664fee005bc1be03012a43"],"same_day":true,"statement_hash":"a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"在 contrib/pgcrypto 中为一个不太可能发生的失败情况添加检查","url":"/docs/compare/?release=9.5.24#9.5.24-c4df30e1bb4d4367","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["4f04e866de664fee005bc1be03012a43"],"same_day":true,"statement_hash":"a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"},"rule":2,"target":"0d5d2e9e50fda96c7c7a5634bd6c0240","type":"equivalent"},{"evidence":{"patch_ids":["4f04e866de664fee005bc1be03012a43"],"same_day":true,"statement_hash":"a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"},"rule":2,"target":"3c818cf27839b50c64d7fe4ebfc48a48","type":"equivalent"},{"evidence":{"patch_ids":["4f04e866de664fee005bc1be03012a43"],"same_day":true,"statement_hash":"a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"},"rule":2,"target":"3cb5853a4b4a15ef6c0d06d259305fe2","type":"equivalent"},{"evidence":{"patch_ids":["4f04e866de664fee005bc1be03012a43"],"same_day":true,"statement_hash":"a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"},"rule":2,"target":"dbac2d5baf492e2785e215805432046b","type":"equivalent"},{"evidence":{"patch_ids":["4f04e866de664fee005bc1be03012a43"],"same_day":true,"statement_hash":"a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4"},"rule":2,"target":"ea8273c89c569c3245f6055814b1914d","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["3d338a46a"],"source_entry_id":"13.1/changes/046","source_hash":"63b1d57f7cc6f25ab552c875754324864468fc5013961c8e914a1eb74eb351aa","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"a101902f387455f94f8154c1086870b38160f769d5625ab9d0a607f5062e59a4","text":"在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查（Daniel Gustafsson）§","title":"在 contrib/pgcrypto 中增加对一种不太可能发生的失败情况的检查","variants":[],"version":"13.1"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["24d769b90","25b587f03","4a071afbd","c39f4e81d","ee03baad2"],"commit_groups":[["24d769b90","25b587f03","4a071afbd","c39f4e81d","ee03baad2"]],"commits":["ee03baad2"],"cves":[],"db_id":"29ee1359b70e89be6ff3c91491982109","html":"\u003cp\u003e修复最近添加的 \u003ccode\u003etimetz\u003c/code\u003e 测试用例，使其在美国未实行夏令时期间也能正常工作（Tom Lane）\u003ca href=\"https://postgr.es/c/ee03baad2\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-1cf13cfa7ad433ac","identity_text":"Fix recently-added timetz test case so it works when the USA is not observing daylight savings time (Tom Lane)","part":"changes","patch_ids":["faa0ab88071d9f2c84164048aceaf04b"],"related_changes":[{"db_id":"9ca9d5b4c77251fc1b35a67283d642ca","evidence":{"patch_ids":["faa0ab88071d9f2c84164048aceaf04b"],"same_day":true,"statement_hash":"b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"修复最近添加的 timetz 测试用例，使其在美国未实行夏令时期间也能正常工作","url":"/docs/compare/?release=12.5#12.5-a31317ae21de06d0","version":"12.5"},{"db_id":"b9e29e97c644a91f72344b503ab22257","evidence":{"patch_ids":["faa0ab88071d9f2c84164048aceaf04b"],"same_day":true,"statement_hash":"b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"修复最近添加的 timetz 测试用例，使其在美国未实行夏令时期间也能正常工作","url":"/docs/compare/?release=11.10#11.10-a677bf8bd4585eb9","version":"11.10"},{"db_id":"7aa39c9385d6d1ba1679568b9da00bba","evidence":{"patch_ids":["faa0ab88071d9f2c84164048aceaf04b"],"same_day":true,"statement_hash":"b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"修复最近添加的 timetz 测试用例，使其在美国未实行夏令时期间也能正常工作","url":"/docs/compare/?release=10.15#10.15-a677bf8bd4585eb9","version":"10.15"}],"relations":[{"evidence":{"patch_ids":["faa0ab88071d9f2c84164048aceaf04b"],"same_day":true,"statement_hash":"b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47"},"rule":2,"target":"7aa39c9385d6d1ba1679568b9da00bba","type":"equivalent"},{"evidence":{"patch_ids":["faa0ab88071d9f2c84164048aceaf04b"],"same_day":true,"statement_hash":"b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47"},"rule":2,"target":"9ca9d5b4c77251fc1b35a67283d642ca","type":"equivalent"},{"evidence":{"patch_ids":["faa0ab88071d9f2c84164048aceaf04b"],"same_day":true,"statement_hash":"b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47"},"rule":2,"target":"b9e29e97c644a91f72344b503ab22257","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["ee03baad2"],"source_entry_id":"13.1/changes/047","source_hash":"39816112ef8e4fba1875bc4437946aec10ca062cbc961209a74bd578ea0f3a50","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"b6b434cdd69930654f029df11918aeeb483d49ae0321496c79e07a583ded2a47","text":"修复最近添加的 timetz 测试用例，使其在美国未实行夏令时期间也能正常工作（Tom Lane）§","title":"修复最近添加的 timetz 测试用例，使其在美国未实行夏令时期间也能正常工作","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["02f86d523","05a36321a","0abebb58f","13dbf4ab8","2b9166dbc","3f26dca76","78ccf7f42","7d6d6bce4","96ed2ae93","a357cc05d","aae4097b0","b39c94097","c4a803ac7","c8cb243cb"],"commit_groups":[["02f86d523","05a36321a","0abebb58f","78ccf7f42","7d6d6bce4","96ed2ae93","a357cc05d"],["13dbf4ab8","2b9166dbc","3f26dca76","aae4097b0","b39c94097","c4a803ac7","c8cb243cb"]],"commits":["3f26dca76","96ed2ae93"],"cves":[],"db_id":"17ad90072e2a8914a07d4372466d24e4","html":"\u003cp\u003e将时区数据文件更新到 \u003cspan\u003etzdata\u003c/span\u003e 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。（Tom Lane）\u003ca href=\"https://postgr.es/c/3f26dca76\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/96ed2ae93\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"13.1-69c39fa41c88aa05","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)","part":"changes","patch_ids":["6b7844d473905050493fea203fa69475","fe3bd98ff6db91aad632edf88c490930"],"related_changes":[{"db_id":"c58c928aec65249ba5f1bb5034af5752","evidence":{"patch_ids":["6b7844d473905050493fea203fa69475","fe3bd98ff6db91aad632edf88c490930"],"same_day":true,"statement_hash":"c77e3801ff3941d2d01739806c015eda2ca4a03ab1bb652efed7a98081d3486e"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。","url":"/docs/compare/?release=12.5#12.5-a596e773c3224b3e","version":"12.5"},{"db_id":"5feb640716a0600d1dca369557b946b5","evidence":{"patch_ids":["6b7844d473905050493fea203fa69475","fe3bd98ff6db91aad632edf88c490930"],"same_day":true},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。","url":"/docs/compare/?release=11.10#11.10-35674ee16596b2e4","version":"11.10"},{"db_id":"0c059116f712fa34ddefc1f3c11c86f8","evidence":{"patch_ids":["6b7844d473905050493fea203fa69475","fe3bd98ff6db91aad632edf88c490930"],"same_day":true},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。","url":"/docs/compare/?release=10.15#10.15-35674ee16596b2e4","version":"10.15"},{"db_id":"24974773d2daa01debb16ce936e6bdc1","evidence":{"patch_ids":["6b7844d473905050493fea203fa69475","fe3bd98ff6db91aad632edf88c490930"],"same_day":true},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"更新时区数据文件到 tzdata 版本 2020d，涉及斐济、摩洛哥、巴勒斯坦、加拿大育空、麦夸里岛和凯西站（南极洲）的夏令时法规变更，以及法国、匈牙利、摩纳哥和巴勒斯坦的历史修正。","url":"/docs/compare/?release=9.6.20#9.6.20-87c614097f028f7e","version":"9.6.20"},{"db_id":"5971ee3b479e16b4b8d6835dad1bb9e3","evidence":{"patch_ids":["6b7844d473905050493fea203fa69475","fe3bd98ff6db91aad632edf88c490930"],"same_day":true},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"更新时区数据文件到 tzdata 版本 2020d，涉及斐济、摩洛哥、巴勒斯坦、加拿大育空、麦夸里岛和凯西站（南极洲）的夏令时法规变更，以及法国、匈牙利、摩纳哥和巴勒斯坦的历史修正。","url":"/docs/compare/?release=9.5.24#9.5.24-87c614097f028f7e","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["6b7844d473905050493fea203fa69475","fe3bd98ff6db91aad632edf88c490930"],"same_day":true},"rule":2,"target":"0c059116f712fa34ddefc1f3c11c86f8","type":"equivalent"},{"evidence":{"patch_ids":["6b7844d473905050493fea203fa69475","fe3bd98ff6db91aad632edf88c490930"],"same_day":true},"rule":2,"target":"24974773d2daa01debb16ce936e6bdc1","type":"equivalent"},{"evidence":{"patch_ids":["6b7844d473905050493fea203fa69475","fe3bd98ff6db91aad632edf88c490930"],"same_day":true},"rule":2,"target":"5971ee3b479e16b4b8d6835dad1bb9e3","type":"equivalent"},{"evidence":{"patch_ids":["6b7844d473905050493fea203fa69475","fe3bd98ff6db91aad632edf88c490930"],"same_day":true},"rule":2,"target":"5feb640716a0600d1dca369557b946b5","type":"equivalent"},{"evidence":{"patch_ids":["6b7844d473905050493fea203fa69475","fe3bd98ff6db91aad632edf88c490930"],"same_day":true,"statement_hash":"c77e3801ff3941d2d01739806c015eda2ca4a03ab1bb652efed7a98081d3486e"},"rule":2,"target":"c58c928aec65249ba5f1bb5034af5752","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["3f26dca76","96ed2ae93"],"source_entry_id":"13.1/changes/048","source_hash":"4d3d4fb5a80423017afb6745f06ff4028da8494b65534df8926d0a57a4a41a00","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"c77e3801ff3941d2d01739806c015eda2ca4a03ab1bb652efed7a98081d3486e","text":"将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。（Tom Lane）§ §","title":"将时区数据文件更新到 tzdata 2020d 版，以反映斐济、摩洛哥、巴勒斯坦、加拿大育空地区、麦夸里岛和凯西站（南极洲）的夏令时法规变更，并修正法国、匈牙利、摩纳哥和巴勒斯坦的历史数据。","variants":[],"version":"13.1"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["0e551533b","34285083b","38fac9c1f","3d13a8307","41eeeb348","4a2528bfa","5515c73a6","58f9f52a3","c5054da0d","ce0e97f80","d2ffe0a00","e0cf5e9b2","f56c42e50","ff26f804a"],"commit_groups":[["0e551533b","34285083b","58f9f52a3","c5054da0d","d2ffe0a00","f56c42e50","ff26f804a"],["38fac9c1f","3d13a8307","41eeeb348","4a2528bfa","5515c73a6","ce0e97f80","e0cf5e9b2"]],"commits":["0e551533b","e0cf5e9b2"],"cves":[],"db_id":"ec084e870ae41f74062a40300d06758a","html":"\u003cp\u003e将我们使用的时区库副本同步到 IANA tzcode 2020d 版（Tom Lane）\u003ca href=\"https://postgr.es/c/e0cf5e9b2\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/0e551533b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这纳入了上游将 \u003cspan\u003ezic\u003c/span\u003e 默认输出选项从 \u003cspan\u003e“\u003cspan\u003efat\u003c/span\u003e”\u003c/span\u003e 改为 \u003cspan\u003e“\u003cspan\u003eslim\u003c/span\u003e”\u003c/span\u003e 的修改。对我们而言，这只是表面上的变化，因为在 v13 之前的分支中，我们仍然选择 \u003cspan\u003e“\u003cspan\u003efat\u003c/span\u003e”\u003c/span\u003e 模式。此项修改还确保 \u003ccode\u003estrftime()\u003c/code\u003e 只在失败时才改变 \u003ccode\u003eerrno\u003c/code\u003e。\u003c/p\u003e","id":"13.1-a63484f22ea7c05b","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.","part":"changes","patch_ids":["5329b926526a7821e21cf0be73875781","c847714957ad066c1565c75e71ba3f93"],"related_changes":[{"db_id":"9c701cb8701480bb7bf7c82ff3b881ed","evidence":{"patch_ids":["5329b926526a7821e21cf0be73875781","c847714957ad066c1565c75e71ba3f93"],"same_day":true,"statement_hash":"b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"},"kind":"equivalent","label":"12.5","source_url":"/docs/release/12.5/#id-1.11.6.23.5","title":"将我们使用的时区库副本同步到 IANA tzcode 2020d 版","url":"/docs/compare/?release=12.5#12.5-e5bcd809852f6361","version":"12.5"},{"db_id":"409e74a5e9afc7b68a41d7cbf221d59a","evidence":{"patch_ids":["5329b926526a7821e21cf0be73875781","c847714957ad066c1565c75e71ba3f93"],"same_day":true,"statement_hash":"b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"},"kind":"equivalent","label":"11.10","source_url":"/docs/release/11.10/#id-1.11.6.17.5","title":"将我们使用的时区库副本同步到 IANA tzcode 2020d 版","url":"/docs/compare/?release=11.10#11.10-7078d7176841368b","version":"11.10"},{"db_id":"156883958c90dfb68c440d6f4e13dd68","evidence":{"patch_ids":["5329b926526a7821e21cf0be73875781","c847714957ad066c1565c75e71ba3f93"],"same_day":true,"statement_hash":"b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"},"kind":"equivalent","label":"10.15","source_url":"/docs/release/10.15/#id-1.11.6.13.5","title":"将我们使用的时区库副本同步到 IANA tzcode 2020d 版","url":"/docs/compare/?release=10.15#10.15-7078d7176841368b","version":"10.15"},{"db_id":"6336dce9078f25448e30e2435b0ec30b","evidence":{"patch_ids":["5329b926526a7821e21cf0be73875781","c847714957ad066c1565c75e71ba3f93"],"same_day":true,"statement_hash":"b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"},"kind":"equivalent","label":"9.6.20","source_url":"/docs/release/9.6.20/#id-1.11.6.9.5","title":"把我们的时区库副本与 IANA tzcode 版本 2020d 同步","url":"/docs/compare/?release=9.6.20#9.6.20-158d67700c1237ce","version":"9.6.20"},{"db_id":"52d347da31273abef1af14ed10ad0fb1","evidence":{"patch_ids":["5329b926526a7821e21cf0be73875781","c847714957ad066c1565c75e71ba3f93"],"same_day":true,"statement_hash":"b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"},"kind":"equivalent","label":"9.5.24","source_url":"/docs/release/9.5.24/#id-1.11.6.6.6","title":"把我们的时区库副本与 IANA tzcode 版本 2020d 同步","url":"/docs/compare/?release=9.5.24#9.5.24-158d67700c1237ce","version":"9.5.24"}],"relations":[{"evidence":{"patch_ids":["5329b926526a7821e21cf0be73875781","c847714957ad066c1565c75e71ba3f93"],"same_day":true,"statement_hash":"b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"},"rule":2,"target":"156883958c90dfb68c440d6f4e13dd68","type":"equivalent"},{"evidence":{"patch_ids":["5329b926526a7821e21cf0be73875781","c847714957ad066c1565c75e71ba3f93"],"same_day":true,"statement_hash":"b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"},"rule":2,"target":"409e74a5e9afc7b68a41d7cbf221d59a","type":"equivalent"},{"evidence":{"patch_ids":["5329b926526a7821e21cf0be73875781","c847714957ad066c1565c75e71ba3f93"],"same_day":true,"statement_hash":"b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"},"rule":2,"target":"52d347da31273abef1af14ed10ad0fb1","type":"equivalent"},{"evidence":{"patch_ids":["5329b926526a7821e21cf0be73875781","c847714957ad066c1565c75e71ba3f93"],"same_day":true,"statement_hash":"b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"},"rule":2,"target":"6336dce9078f25448e30e2435b0ec30b","type":"equivalent"},{"evidence":{"patch_ids":["5329b926526a7821e21cf0be73875781","c847714957ad066c1565c75e71ba3f93"],"same_day":true,"statement_hash":"b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd"},"rule":2,"target":"9c701cb8701480bb7bf7c82ff3b881ed","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["0e551533b","e0cf5e9b2"],"source_entry_id":"13.1/changes/049","source_hash":"8e80dfd17280c1be5e32a09cc37f7ba10b2302aad8b92cb4405abefa7413387e","source_url":"/docs/release/13.1/#id-1.11.6.28.5","statement_hash":"b02406ddb8da8aaea556e8b795c8d63e69a9bacfe44140c73254eb1d95d7b3fd","text":"将我们使用的时区库副本同步到 IANA tzcode 2020d 版（Tom Lane）§ § 这纳入了上游将 zic 默认输出选项从 “fat” 改为 “slim” 的修改。对我们而言，这只是表面上的变化，因为在 v13 之前的分支中，我们仍然选择 “fat” 模式。此项修改还确保 strftime() 只在失败时才改变 errno。","title":"将我们使用的时区库副本同步到 IANA tzcode 2020d 版","variants":[],"version":"13.1"}],"entry_count":49,"eol":"2025-11-13","eol_date":"2025-11-13","label":"13.1","major":"13","manual":"13","manual_build":"13.23","manual_url":"/docs/13/release-13-1.html","migration_html":"\u003cp\u003e对于运行 13.X 的用户，不需要执行导出/恢复。\u003c/p\u003e","minor":1,"placeholder":false,"source_as_of":"","source_url":"/docs/release/13.1/","status":"stable","status_label":"Historical","support_days":-332,"supported":false,"version":"13.1"}],"mode":"release","release_count":1,"remaining_cves":[],"security_as_of":"2026-09-26","security_regressions":[],"source_as_of":"2026-09-26","stats":[{"count":49,"key":"all","label":"All changes"},{"count":0,"key":"feature","label":"Features"},{"count":24,"key":"bugfix","label":"Bug fixes"},{"count":4,"key":"security","label":"Security"},{"count":0,"key":"performance","label":"Performance"},{"count":0,"key":"compatibility","label":"Compatibility"},{"count":21,"key":"improvement","label":"Improvements"}],"to_release":{"age_days":2159,"build":"13.1","changes_count":49,"compatibility_count":0,"content_hash":"936bd11af40024c64f514899165fe18414f80a8d49504265870defa167ab842e","date":"2020-11-12","date_text":"2020-11-12","doc_git":"","doc_loaded_at":"2026-09-26T02:56:40.428744","entry_count":49,"eol":"2025-11-13","eol_date":"2025-11-13","label":"13.1","major":"13","manual":"13","manual_build":"13.23","manual_url":"/docs/13/release-13-1.html","migration_html":"\u003cp\u003e对于运行 13.X 的用户，不需要执行导出/恢复。\u003c/p\u003e","minor":1,"placeholder":false,"source_as_of":"","source_url":"/docs/release/13.1/","status":"stable","status_label":"Historical","support_days":-332,"supported":false,"version":"13.1"},"total":49,"warnings":[]}
