{"format": 1, "mode": "release", "from_release": null, "to_release": {"date": "2019-06-20", "build": "11.4", "major": "11", "minor": 4, "manual": "11", "status": "stable", "doc_git": "", "version": "11.4", "eol_date": "2023-11-09", "date_text": "2019-06-20", "supported": false, "manual_url": "/docs/11/release-11-4.html", "source_url": "/docs/release/11.4/", "entry_count": 26, "placeholder": false, "content_hash": "bf45e0ceb420f86460601acdd6df13918476765820e285ea1c11d231a52d3170", "manual_build": "11.22", "source_as_of": "", "changes_count": 26, "doc_loaded_at": "2026-09-26T02:56:42.383207", "migration_html": "<p>对于运行 11.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果是从早于 11.1 的版本升级，请参见<a href=\"/docs/11/release-11-1.html\" title=\"E.22. 发布版本 11.1\">第 E.22 节</a>。</p>", "compatibility_count": 0, "label": "11.4", "status_label": "历史版本", "eol": "2023-11-09", "age_days": 2659, "support_days": -1056}, "groups": [{"date": "2019-06-20", "build": "11.4", "major": "11", "minor": 4, "manual": "11", "status": "stable", "doc_git": "", "version": "11.4", "eol_date": "2023-11-09", "date_text": "2019-06-20", "supported": false, "manual_url": "/docs/11/release-11-4.html", "source_url": "/docs/release/11.4/", "entry_count": 26, "placeholder": false, "content_hash": "bf45e0ceb420f86460601acdd6df13918476765820e285ea1c11d231a52d3170", "manual_build": "11.22", "source_as_of": "", "changes_count": 26, "doc_loaded_at": "2026-09-26T02:56:42.383207", "migration_html": "<p>对于运行 11.X 的用户，不需要执行导出/恢复。</p>\n<p>但是，如果是从早于 11.1 的版本升级，请参见<a href=\"/docs/11/release-11-1.html\" title=\"E.22. 发布版本 11.1\">第 E.22 节</a>。</p>", "compatibility_count": 0, "label": "11.4", "status_label": "历史版本", "eol": "2023-11-09", "age_days": 2659, "support_days": -1056, "entries": [{"id": "11.4-12c9b7fb1b5b9b81", "cves": ["CVE-2019-10164"], "html": "<p>修复 SCRAM 验证信息解析中的缓冲区溢出隐患（Jonathan Katz，Heikki Linnakangas，Michael Paquier）</p>\n<p>任何已认证用户都可以通过将自己的密码修改为恶意构造的值，引发基于栈的缓冲区溢出。除了使 <span>PostgreSQL</span> 服务器崩溃之外，这还可能足以让攻击者以 <span>PostgreSQL</span> 操作系统账户的身份执行任意代码。</p>\n<p><span>libpq</span> 中也存在类似的溢出隐患，可能允许恶意服务器使客户端崩溃，甚至以客户端的操作系统账户执行任意代码。</p>\n<p><span>PostgreSQL</span> 项目感谢 Alexander Lakhin 报告此问题。（CVE-2019-10164）</p>", "text": "修复 SCRAM 验证信息解析中的缓冲区溢出隐患（Jonathan Katz，Heikki Linnakangas，Michael Paquier） 任何已认证用户都可以通过将自己的密码修改为恶意构造的值，引发基于栈的缓冲区溢出。除了使 PostgreSQL 服务器崩溃之外，这还可能足以让攻击者以 PostgreSQL 操作系统账户的身份执行任意代码。 libpq 中也存在类似的溢出隐患，可能允许恶意服务器使客户端崩溃，甚至以客户端的操作系统账户执行任意代码。 PostgreSQL 项目感谢 Alexander Lakhin 报告此问题。（CVE-2019-10164）", "title": "修复 SCRAM 验证信息解析中的缓冲区溢出隐患", "commits": [], "section": "变更", "category": "security", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "5f6d07e5efac6097fce32bac7922c21b41df03304c743cb07c70291c84afb8d3", "section_path": ["变更"], "commit_groups": [["09ec55b93", "4c779ce32", "90adc16ea"], ["27c464e42", "b67421178", "d72a7e4da"]], "identity_text": "Fix buffer-overflow hazards in SCRAM verifier parsing (Jonathan Katz, Heikki Linnakangas, Michael Paquier) Any authenticated user could cause a stack-based buffer overflow by changing their own password to a purpose-crafted value. In addition to the ability to crash the PostgreSQL server, this could suffice for executing arbitrary code as the PostgreSQL operating system account. A similar overflow hazard existed in libpq, which could allow a rogue server to crash a client or perhaps execute arbitrary code as the client's operating system account. The PostgreSQL Project thanks Alexander Lakhin for reporting this problem. (CVE-2019-10164)", "commit_aliases": ["09ec55b93", "27c464e42", "4c779ce32", "90adc16ea", "b67421178", "d72a7e4da"], "source_commits": ["27c464e42", "4c779ce32"], "source_entry_id": "11.4/changes/001", "db_id": "ce0050b49f6d3c48782ed8038ec87188", "patch_ids": ["8ba51ab3bacf6264cc906660033c0b69", "91512d71bcfbb4be8ee6e484fe9fe895"], "statement_hash": "8244b812189febe03e86d36274724922af7fc9b91795cf6d07697d0d37062e94", "relations": [{"rule": 2, "type": "equivalent", "target": "f27d992c777733abca95c80fb5117ca8", "evidence": {"same_day": true, "patch_ids": ["8ba51ab3bacf6264cc906660033c0b69", "91512d71bcfbb4be8ee6e484fe9fe895"], "statement_hash": "8244b812189febe03e86d36274724922af7fc9b91795cf6d07697d0d37062e94"}}], "version": "11.4", "category_label": "安全相关", "also_in": [], "variants": [], "related_changes": [{"db_id": "f27d992c777733abca95c80fb5117ca8", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复 SCRAM 验证信息解析中的缓冲区溢出隐患", "evidence": {"same_day": true, "patch_ids": ["8ba51ab3bacf6264cc906660033c0b69", "91512d71bcfbb4be8ee6e484fe9fe895"], "statement_hash": "8244b812189febe03e86d36274724922af7fc9b91795cf6d07697d0d37062e94"}, "url": "/docs/compare/?release=10.9#10.9-12c9b7fb1b5b9b81", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}]}, {"id": "11.4-1529fa78cab4ef98", "cves": [], "html": "<p>修复运行时分区剪枝逻辑中的各类错误（Tom Lane，Amit Langote，David Rowley）</p>\n<p>如果用于剪枝的比较值是动态确定的，或者剪枝决策涉及多个范围分区列，或者涉及稳定但非不可变的比较操作符，这些错误可能使分区表查询返回错误结果。</p>", "text": "修复运行时分区剪枝逻辑中的各类错误（Tom Lane，Amit Langote，David Rowley） 如果用于剪枝的比较值是动态确定的，或者剪枝决策涉及多个范围分区列，或者涉及稳定但非不可变的比较操作符，这些错误可能使分区表查询返回错误结果。", "title": "修复运行时分区剪枝逻辑中的各类错误", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "5051306dbf9c997ea54bef19918ae12f929eafe38325330cbcd86a4562fcc645", "section_path": ["变更"], "commit_groups": [["10c5cc4b4", "4b1fcb43d"], ["3922f1064", "51948c4e1"], ["592d5d75b", "6630ccad7"]], "identity_text": "Fix assorted errors in run-time partition pruning logic (Tom Lane, Amit Langote, David Rowley) These mistakes could lead to wrong answers in queries on partitioned tables, if the comparison value used for pruning is dynamically determined, or if multiple range-partitioned columns are involved in pruning decisions, or if stable (not immutable) comparison operators are involved.", "commit_aliases": ["10c5cc4b4", "3922f1064", "4b1fcb43d", "51948c4e1", "592d5d75b", "6630ccad7"], "source_commits": ["10c5cc4b4", "51948c4e1", "592d5d75b"], "source_entry_id": "11.4/changes/002", "db_id": "975c989475e5b93797f29e6c76a3cbae", "patch_ids": ["59e70c95b4032e78d3d49f99185e0b2c", "ad64c95949c164ae3b7e9cc324f58af4", "d18ebd2cbb1bc8058486f03cb3ee6fec"], "statement_hash": "b2a05cf7fda045205aa768f17431715b2885a9c12cdca91bffb2aebc7308fadd", "relations": [], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "11.4-82ee1aed2279a229", "cves": [], "html": "<p>修复尝试将触发器定义复制到新分区时可能发生的崩溃（Tom Lane）</p>", "text": "修复尝试将触发器定义复制到新分区时可能发生的崩溃（Tom Lane）", "title": "修复尝试将触发器定义复制到新分区时可能发生的崩溃", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "f13fc03ad951e48c9b363a37ca06d1caa58966773d40f833b59ff168cbc3bc87", "section_path": ["变更"], "commit_groups": [["601084eb1", "eaf0292c3"]], "identity_text": "Fix possible crash while trying to copy trigger definitions to a new partition (Tom Lane)", "commit_aliases": ["601084eb1", "eaf0292c3"], "source_commits": ["601084eb1"], "source_entry_id": "11.4/changes/003", "db_id": "d01814c2773464866da69fa1095219af", "patch_ids": ["45f09768d24d308f20254e0485a16015"], "statement_hash": "8a681536f9a3fa21098a425136653d255a3b11b4cf4074d3ae15e298dbea6510", "relations": [], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "11.4-3c529015978dbea0", "cves": [], "html": "<p>修复表具有部分排除约束时 <code>ALTER TABLE ... ALTER COLUMN TYPE</code> 发生的失败（Tom Lane）</p>", "text": "修复表具有部分排除约束时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败（Tom Lane）", "title": "修复表具有部分排除约束时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "dd78f5c3da031fb7de4219cc56e03160053a03e93a28807fed0b1aed84bc501f", "section_path": ["变更"], "commit_groups": [["0b6edb9fb", "2981e5a61", "77d45b790", "9695ecf36", "e76de8861", "f7e99de95"]], "identity_text": "Fix failure of ALTER TABLE ... ALTER COLUMN TYPE when the table has a partial exclusion constraint (Tom Lane)", "commit_aliases": ["0b6edb9fb", "2981e5a61", "77d45b790", "9695ecf36", "e76de8861", "f7e99de95"], "source_commits": ["0b6edb9fb"], "source_entry_id": "11.4/changes/004", "db_id": "18897c934331d00b6064b3b740544c2f", "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d", "relations": [{"rule": 2, "type": "equivalent", "target": "1b3fbedb7ce3b15faea5f177e5baf868", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}}, {"rule": 2, "type": "equivalent", "target": "419daf02f3a6d744d20dc80723fff2eb", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}}, {"rule": 2, "type": "equivalent", "target": "85f75aeb03f367134a4e7d7856d2df24", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}}, {"rule": 2, "type": "equivalent", "target": "c48bc4f5d4f181dca0cb27b2d1bed2fe", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}}], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "c48bc4f5d4f181dca0cb27b2d1bed2fe", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复表具有部分排除约束时 ALTER TABLE ... ALTER COLUMN TYPE 发生的失败", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}, "url": "/docs/compare/?release=10.9#10.9-3c529015978dbea0", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "85f75aeb03f367134a4e7d7856d2df24", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "修复表带有部分排他约束时 ALTER TABLE ... ALTER COLUMN TYPE 的失败", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}, "url": "/docs/compare/?release=9.6.14#9.6.14-5cf79602a6b27f1b", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "419daf02f3a6d744d20dc80723fff2eb", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "修复表带有部分排他约束时 ALTER TABLE ... ALTER COLUMN TYPE 的失败", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}, "url": "/docs/compare/?release=9.5.18#9.5.18-5cf79602a6b27f1b", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "1b3fbedb7ce3b15faea5f177e5baf868", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "修复表带有部分排他约束时 ALTER TABLE ... ALTER COLUMN TYPE 的失败", "evidence": {"same_day": true, "patch_ids": ["0e3bf0fa29dc56c919833424b8035491"], "statement_hash": "4f5a1cb1f01b73c9908be379bcccd6339796aaaf2fa7c86619f298a20d421a2d"}, "url": "/docs/compare/?release=9.4.23#9.4.23-5cf79602a6b27f1b", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "11.4-df7e7ef88eea914c", "cves": [], "html": "<p>修复为域约束添加注释时 <code>COMMENT</code> 命令发生的失败（Daniel Gustafsson，Michael Paquier）</p>", "text": "修复为域约束添加注释时 COMMENT 命令发生的失败（Daniel Gustafsson，Michael Paquier）", "title": "修复为域约束添加注释时 COMMENT 命令发生的失败", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "daea23416499ddc5020ab071839ca70d116367a0418554c88b9e053cbc431b82", "section_path": ["变更"], "commit_groups": [["13f4b462d", "56a932533", "ceac4505d", "fa5f3a4bc", "ff1a25601"]], "identity_text": "Fix failure of COMMENT command for comments on domain constraints (Daniel Gustafsson, Michael Paquier)", "commit_aliases": ["13f4b462d", "56a932533", "ceac4505d", "fa5f3a4bc", "ff1a25601"], "source_commits": ["fa5f3a4bc"], "source_entry_id": "11.4/changes/005", "db_id": "c5f7cdf209f60043884dc3da739e8029", "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959", "relations": [{"rule": 2, "type": "equivalent", "target": "3a66c80262abd3c1e5dd6dd62c58ff1d", "evidence": {"same_day": true, "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959"}}, {"rule": 2, "type": "equivalent", "target": "79a41d1452c9d46df4bec0272f1d4838", "evidence": {"same_day": true, "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959"}}, {"rule": 2, "type": "equivalent", "target": "ee498eacefe406ea41e1f63a6327d0e1", "evidence": {"same_day": true, "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959"}}], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "79a41d1452c9d46df4bec0272f1d4838", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复为域约束添加注释时 COMMENT 命令发生的失败", "evidence": {"same_day": true, "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959"}, "url": "/docs/compare/?release=10.9#10.9-df7e7ef88eea914c", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "ee498eacefe406ea41e1f63a6327d0e1", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "修复对域约束的注释执行 COMMENT 命令的失败", "evidence": {"same_day": true, "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959"}, "url": "/docs/compare/?release=9.6.14#9.6.14-52ae89e3d8d9d34e", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "3a66c80262abd3c1e5dd6dd62c58ff1d", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "修复对域约束的注释执行 COMMENT 命令的失败", "evidence": {"same_day": true, "patch_ids": ["936628d057adde522ee7f95a04c65be1"], "statement_hash": "2e0bf2804f397de360996c3647e4189cf37cb23b2c22eb1a9f4025ac87792959"}, "url": "/docs/compare/?release=9.5.18#9.5.18-52ae89e3d8d9d34e", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}]}, {"id": "11.4-a6534e75d17dcc6a", "cves": [], "html": "<p>防止 hash 聚合的 hash 键列表中存在重复列时可能发生的内存破坏（Andrew Gierth）</p>", "text": "防止 hash 聚合的 hash 键列表中存在重复列时可能发生的内存破坏（Andrew Gierth）", "title": "防止 hash 聚合的 hash 键列表中存在重复列时可能发生的内存破坏", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "3596825bdf904d123986160394f11795d86fe81054263f7651b7a941bc9e63b6", "section_path": ["变更"], "commit_groups": [["44e95b572", "99efd8d72", "f7da492dc"]], "identity_text": "Prevent possible memory clobber when there are duplicate columns in a hash aggregate's hash key list (Andrew Gierth)", "commit_aliases": ["44e95b572", "99efd8d72", "f7da492dc"], "source_commits": ["f7da492dc"], "source_entry_id": "11.4/changes/006", "db_id": "f187433c9e60a5185f15bc2c6330a23c", "patch_ids": ["5470c94ff25270af7316d9139fc82f6b"], "statement_hash": "908a56bff027bd59456f5224ad9f7fc1114c2a6c0c069564b0099c0bf71a8008", "relations": [{"rule": 2, "type": "equivalent", "target": "06b7960fddd774af819bbd2c245f35f2", "evidence": {"same_day": true, "patch_ids": ["5470c94ff25270af7316d9139fc82f6b"], "statement_hash": "908a56bff027bd59456f5224ad9f7fc1114c2a6c0c069564b0099c0bf71a8008"}}], "version": "11.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "06b7960fddd774af819bbd2c245f35f2", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "防止 hash 聚合的 hash 键列表中存在重复列时可能发生的内存破坏", "evidence": {"same_day": true, "patch_ids": ["5470c94ff25270af7316d9139fc82f6b"], "statement_hash": "908a56bff027bd59456f5224ad9f7fc1114c2a6c0c069564b0099c0bf71a8008"}, "url": "/docs/compare/?release=10.9#10.9-a6534e75d17dcc6a", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}]}, {"id": "11.4-f91c3aabf0890be2", "cves": [], "html": "<p>修复对零参数或多参数聚合执行部分聚合时，不正确的参数空值检查（David Rowley，Kyotaro Horiguchi，Andres Freund）</p>", "text": "修复对零参数或多参数聚合执行部分聚合时，不正确的参数空值检查（David Rowley，Kyotaro Horiguchi，Andres Freund）", "title": "修复对零参数或多参数聚合执行部分聚合时，不正确的参数空值检查", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "7adf372f808216e726c760b139747f01dcf0291b568fc17c2426e5b6faa8ff63", "section_path": ["变更"], "commit_groups": [["265728325", "9fea0b0e2"]], "identity_text": "Fix incorrect argument null-ness checking during partial aggregation of aggregates with zero or multiple arguments (David Rowley, Kyotaro Horiguchi, Andres Freund)", "commit_aliases": ["265728325", "9fea0b0e2"], "source_commits": ["9fea0b0e2"], "source_entry_id": "11.4/changes/007", "db_id": "6d3d2ea4bb2f3a60386760c8c57b7d36", "patch_ids": ["395aae064070267ff18907ab2054f331"], "statement_hash": "6b3e1a46b901a1a5ca6a7a31b78478ffa05eeeb2b2e67abc2d2b31ee623eafe8", "relations": [], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": []}, {"id": "11.4-7fc9e8d86657e23d", "cves": [], "html": "<p>修复归并追加计划的错误生成（Tom Lane）</p>\n<p>此错误可能导致 <span>“<span>could not find pathkey item to sort</span>”</span> 错误。</p>", "text": "修复归并追加计划的错误生成（Tom Lane） 此错误可能导致 “could not find pathkey item to sort” 错误。", "title": "修复归并追加计划的错误生成", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "ec39dbf4e47a8a606b547aa9d61bc67e805d8c039326763aacb4376bed573c3d", "section_path": ["变更"], "commit_groups": [["24c19e9f6", "3203714c3", "946cdf9ff", "e7eed0baa"]], "identity_text": "Fix faulty generation of merge-append plans (Tom Lane) This mistake could lead to could not find pathkey item to sort errors.", "commit_aliases": ["24c19e9f6", "3203714c3", "946cdf9ff", "e7eed0baa"], "source_commits": ["e7eed0baa"], "source_entry_id": "11.4/changes/008", "db_id": "edfe87ff847c896915764836605aa6d6", "patch_ids": ["363084a9954b00c7f8fe32ec5f126608"], "statement_hash": "627a469b6c79c8c5dd8282d7d80999ba306640e08bfe0ce2fe4515e3cd4b566f", "relations": [{"rule": 2, "type": "equivalent", "target": "62554619cae9c1ecfe9f3de71c890f8f", "evidence": {"same_day": true, "patch_ids": ["363084a9954b00c7f8fe32ec5f126608"], "statement_hash": "627a469b6c79c8c5dd8282d7d80999ba306640e08bfe0ce2fe4515e3cd4b566f"}}, {"rule": 2, "type": "equivalent", "target": "b32f124390c285c0e20c08d549e13970", "evidence": {"same_day": true, "patch_ids": ["363084a9954b00c7f8fe32ec5f126608"], "statement_hash": "627a469b6c79c8c5dd8282d7d80999ba306640e08bfe0ce2fe4515e3cd4b566f"}}], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "62554619cae9c1ecfe9f3de71c890f8f", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复归并追加计划的错误生成", "evidence": {"same_day": true, "patch_ids": ["363084a9954b00c7f8fe32ec5f126608"], "statement_hash": "627a469b6c79c8c5dd8282d7d80999ba306640e08bfe0ce2fe4515e3cd4b566f"}, "url": "/docs/compare/?release=10.9#10.9-7fc9e8d86657e23d", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "b32f124390c285c0e20c08d549e13970", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "修复 merge-append 计划的错误生成", "evidence": {"same_day": true, "patch_ids": ["363084a9954b00c7f8fe32ec5f126608"], "statement_hash": "627a469b6c79c8c5dd8282d7d80999ba306640e08bfe0ce2fe4515e3cd4b566f"}, "url": "/docs/compare/?release=9.6.14#9.6.14-b68c93aa9028cec6", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}]}, {"id": "11.4-67f47b7727df0059", "cves": [], "html": "<p>修复带有重复连接名称的查询的不正确输出（Philip Dubé）</p>\n<p>这一疏漏导致包含此类查询的视图转储/恢复失败。</p>", "text": "修复带有重复连接名称的查询的不正确输出（Philip Dubé） 这一疏漏导致包含此类查询的视图转储/恢复失败。", "title": "修复带有重复连接名称的查询的不正确输出", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "9ee159ed3109c4b0f0bf1c1ffffedca601b89fb052b78ff94e7c67f0079c35ab", "section_path": ["变更"], "commit_groups": [["30d3df0a7", "3d99a8139", "8ace51a6b", "ad3e61b28", "bf612fd3a", "f95d8f810"]], "identity_text": "Fix incorrect printing of queries with duplicate join names (Philip Dubé) This oversight caused a dump/restore failure for views containing such queries.", "commit_aliases": ["30d3df0a7", "3d99a8139", "8ace51a6b", "ad3e61b28", "bf612fd3a", "f95d8f810"], "source_commits": ["f95d8f810"], "source_entry_id": "11.4/changes/009", "db_id": "2656cbfb941f38df372fc01f0006353b", "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1", "relations": [{"rule": 2, "type": "equivalent", "target": "7a23f8ee65e5b7bcee65cd28cfc4b10c", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}}, {"rule": 2, "type": "equivalent", "target": "b99a1ae1d7541f85fbc0194f8c662e0d", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}}, {"rule": 2, "type": "equivalent", "target": "ce621bfa11fdf4057e33a07171485043", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}}, {"rule": 2, "type": "equivalent", "target": "da9f7a3369239a5bbd2afff9bc43dcf1", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}}], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ce621bfa11fdf4057e33a07171485043", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复带有重复连接名称的查询的不正确输出", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}, "url": "/docs/compare/?release=10.9#10.9-67f47b7727df0059", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "da9f7a3369239a5bbd2afff9bc43dcf1", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "修复带重复连接名的查询的错误打印", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}, "url": "/docs/compare/?release=9.6.14#9.6.14-7b4f811fceeb4bff", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "7a23f8ee65e5b7bcee65cd28cfc4b10c", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "修复带重复连接名的查询的错误打印", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}, "url": "/docs/compare/?release=9.5.18#9.5.18-7b4f811fceeb4bff", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "b99a1ae1d7541f85fbc0194f8c662e0d", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "修复带重复连接名的查询的错误打印", "evidence": {"same_day": true, "patch_ids": ["58dc2880d650759c2ee405bf3a9b2fdd"], "statement_hash": "9330ff3ed22edad6c481ad437d7f285101418275e0baf7a9dd075e2620dca9a1"}, "url": "/docs/compare/?release=9.4.23#9.4.23-7b4f811fceeb4bff", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "11.4-768adde882a549d7", "cves": [], "html": "<p>修复 <code>json_to_record()</code> 和 <code>json_populate_record()</code> 中将 JSON 字符串字面量转换为 JSON 类型输出列的处理（Tom Lane）</p>\n<p>这些情况下应将字面量作为独立的 JSON 值输出，但如果字面量包含任何需要转义的字符，代码就会出现错误行为。</p>", "text": "修复 json_to_record() 和 json_populate_record() 中将 JSON 字符串字面量转换为 JSON 类型输出列的处理（Tom Lane） 这些情况下应将字面量作为独立的 JSON 值输出，但如果字面量包含任何需要转义的字符，代码就会出现错误行为。", "title": "修复 json_to_record() 和 json_populate_record() 中将 JSON 字符串字面量转换为 JSON 类型输出列的处理", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "1986e1eba66542a092601920953da10e074f2d980f10be9becf6c64d69c6b5b7", "section_path": ["变更"], "commit_groups": [["1c9034579", "6f34fcbbd", "b6f5689aa"]], "identity_text": "Fix conversion of JSON string literals to JSON-type output columns in json_to_record() and json_populate_record() (Tom Lane) Such cases should produce the literal as a standalone JSON value, but the code misbehaved if the literal contained any characters requiring escaping.", "commit_aliases": ["1c9034579", "6f34fcbbd", "b6f5689aa"], "source_commits": ["1c9034579"], "source_entry_id": "11.4/changes/010", "db_id": "0bcb673a196a8739160250c8774bd314", "patch_ids": ["60c0357519c8fa286710d223d98d6d11"], "statement_hash": "3e59d42f10e598f3a971759dca8811a8e7ee7c00e56e86bb26581f184c3ae327", "relations": [{"rule": 2, "type": "equivalent", "target": "a4be0348fe6158004caf23f495979750", "evidence": {"same_day": true, "patch_ids": ["60c0357519c8fa286710d223d98d6d11"], "statement_hash": "3e59d42f10e598f3a971759dca8811a8e7ee7c00e56e86bb26581f184c3ae327"}}], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "a4be0348fe6158004caf23f495979750", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复 json_to_record() 和 json_populate_record() 中将 JSON 字符串字面量转换为 JSON 类型输出列的处理", "evidence": {"same_day": true, "patch_ids": ["60c0357519c8fa286710d223d98d6d11"], "statement_hash": "3e59d42f10e598f3a971759dca8811a8e7ee7c00e56e86bb26581f184c3ae327"}, "url": "/docs/compare/?release=10.9#10.9-768adde882a549d7", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}]}, {"id": "11.4-11cc1d08b880a592", "cves": [], "html": "<p>修复对正则表达式中 <code>{1,1}</code> 量词的不正确优化（Tom Lane）</p>\n<p>此类量词被视为无操作并被优化掉；但文档规定，它们会为所附着的子表达式施加贪婪性，或在使用非贪婪变体 <code>{1,1}?</code> 时施加非贪婪性，而实际并未如此。只有当子表达式包含捕获括号或反向引用时，才会发生这种错误行为。</p>", "text": "修复对正则表达式中 {1,1} 量词的不正确优化（Tom Lane） 此类量词被视为无操作并被优化掉；但文档规定，它们会为所附着的子表达式施加贪婪性，或在使用非贪婪变体 {1,1}? 时施加非贪婪性，而实际并未如此。只有当子表达式包含捕获括号或反向引用时，才会发生这种错误行为。", "title": "修复对正则表达式中 {1,1} 量词的不正确优化", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "d81285e2a6306328b7c7897fbe58a4cf22c84c87d06d87f42e658d55b790921f", "section_path": ["变更"], "commit_groups": [["2a3dbc151", "72ce7acaf", "8a29ed053", "940f64792", "b1ca28e57", "d6de52636"]], "identity_text": "Fix misoptimization of {1,1} quantifiers in regular expressions (Tom Lane) Such quantifiers were treated as no-ops and optimized away; but the documentation specifies that they impose greediness, or non-greediness in the case of the non-greedy variant {1,1}?, on the subexpression they're attached to, and this did not happen. The misbehavior occurred only if the subexpression contained capturing parentheses or a back-reference.", "commit_aliases": ["2a3dbc151", "72ce7acaf", "8a29ed053", "940f64792", "b1ca28e57", "d6de52636"], "source_commits": ["72ce7acaf"], "source_entry_id": "11.4/changes/011", "db_id": "5e71394b1e33172a8be827640e5a6a78", "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e", "relations": [{"rule": 2, "type": "equivalent", "target": "73174114b265ccd1c2f268378a985efd", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}}, {"rule": 2, "type": "equivalent", "target": "b4eb6bb752d8331ff2cfbda5d1e99af5", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}}, {"rule": 2, "type": "equivalent", "target": "e7491dfd0c36ebf8bbd54223bb1aa144", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}}, {"rule": 2, "type": "equivalent", "target": "eefeca727b65b78b84cd66b05dece669", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}}], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "e7491dfd0c36ebf8bbd54223bb1aa144", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复对正则表达式中 {1,1} 量词的不正确优化", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}, "url": "/docs/compare/?release=10.9#10.9-11cc1d08b880a592", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "eefeca727b65b78b84cd66b05dece669", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "修复正则表达式中 {1,1} 量词的错误优化", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}, "url": "/docs/compare/?release=9.6.14#9.6.14-bbac378f1b5576b4", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "73174114b265ccd1c2f268378a985efd", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "修复正则表达式中 {1,1} 量词的错误优化", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}, "url": "/docs/compare/?release=9.5.18#9.5.18-bbac378f1b5576b4", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "b4eb6bb752d8331ff2cfbda5d1e99af5", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "修复正则表达式中 {1,1} 量词的错误优化", "evidence": {"same_day": true, "patch_ids": ["2b2b512f4caed9ee4828dfded7a7c4e2"], "statement_hash": "a6ff7faab782fac8567b0242386fd8b7832cf4c10ab1541c8b994d495869c94e"}, "url": "/docs/compare/?release=9.4.23#9.4.23-bbac378f1b5576b4", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "11.4-3584992e12d218d9", "cves": [], "html": "<p>在页面分裂期间处理 INCLUDE 列时发生失败的罕见情况下，避免写入无效的空 B-树索引页（Peter Geoghegan）</p>\n<p>无效页面不会影响正常的索引操作，但可能导致后续 VACUUM 失败。如果某个索引已经发生此问题，可以通过重建该索引恢复。</p>", "text": "在页面分裂期间处理 INCLUDE 列时发生失败的罕见情况下，避免写入无效的空 B-树索引页（Peter Geoghegan） 无效页面不会影响正常的索引操作，但可能导致后续 VACUUM 失败。如果某个索引已经发生此问题，可以通过重建该索引恢复。", "title": "在页面分裂期间处理 INCLUDE 列时发生失败的罕见情况下，避免写入无效的空 B-树索引页", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "bc33099d62cb75644fe832a2e861a697bc739abc73d9ad56c1b2094addab737f", "section_path": ["变更"], "commit_groups": [["9b42e7137", "bf78f50ba"]], "identity_text": "Avoid writing an invalid empty btree index page in the unlikely case that a failure occurs while processing INCLUDEd columns during a page split (Peter Geoghegan) The invalid page would not affect normal index operations, but it might cause failures in subsequent VACUUMs. If that has happened to one of your indexes, recover by reindexing the index.", "commit_aliases": ["9b42e7137", "bf78f50ba"], "source_commits": ["bf78f50ba"], "source_entry_id": "11.4/changes/012", "db_id": "3d397a9e34cff2ff9e96b1c95af4b8ba", "patch_ids": ["d889a8e140c5b01d2e1fb95d1b584588"], "statement_hash": "f8a1c025a824afb2f162c864456f1d262ea235577eeff753c74ab7f864473dca", "relations": [], "version": "11.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": []}, {"id": "11.4-d74f32f0a1227844", "cves": [], "html": "<p>避免初始化新进程的 <code>pg_stat_activity</code> 数据时可能发生的失败（Tom Lane）</p>\n<p>某些可能失败的操作，例如将从 SSL 证书提取的字符串转换为数据库编码，原本在临界区内执行。此处的失败会违反共享 <code>pg_stat_activity</code> 数据的访问协议，导致整个数据库卡死。</p>", "text": "避免初始化新进程的 pg_stat_activity 数据时可能发生的失败（Tom Lane） 某些可能失败的操作，例如将从 SSL 证书提取的字符串转换为数据库编码，原本在临界区内执行。此处的失败会违反共享 pg_stat_activity 数据的访问协议，导致整个数据库卡死。", "title": "避免初始化新进程的 pg_stat_activity 数据时可能发生的失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "29634793872d0eb4e9b98fcd6dc8c6784a0775f5265fd6d17854857226f28767", "section_path": ["变更"], "commit_groups": [["27d3394b0", "85ccb6899", "899f943ca", "c3d113136", "eb97242c2"]], "identity_text": "Avoid possible failures while initializing a new process's pg_stat_activity data (Tom Lane) Certain operations that could fail, such as converting strings extracted from an SSL certificate into the database encoding, were being performed inside a critical section. Failure there would result in database-wide lockup due to violating the access protocol for shared pg_stat_activity data.", "commit_aliases": ["27d3394b0", "85ccb6899", "899f943ca", "c3d113136", "eb97242c2"], "source_commits": ["eb97242c2"], "source_entry_id": "11.4/changes/013", "db_id": "43e222b888f6d339b2194a80c5baae97", "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2", "relations": [{"rule": 2, "type": "equivalent", "target": "46e0c783bccee3bc419a5a80c387d23d", "evidence": {"same_day": true, "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2"}}, {"rule": 2, "type": "equivalent", "target": "492bd8985c7481282eea942553923e5f", "evidence": {"same_day": true, "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2"}}, {"rule": 2, "type": "equivalent", "target": "9136839290a792e7abadf4853fa80afc", "evidence": {"same_day": true, "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2"}}], "version": "11.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "46e0c783bccee3bc419a5a80c387d23d", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "避免初始化新进程的 pg_stat_activity 数据时可能发生的失败", "evidence": {"same_day": true, "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2"}, "url": "/docs/compare/?release=10.9#10.9-d74f32f0a1227844", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "492bd8985c7481282eea942553923e5f", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "避免初始化新进程的 pg_stat_activity 数据时可能的失败", "evidence": {"same_day": true, "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2"}, "url": "/docs/compare/?release=9.6.14#9.6.14-a04ff3c749a3df8c", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "9136839290a792e7abadf4853fa80afc", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "避免初始化新进程的 pg_stat_activity 数据时可能的失败", "evidence": {"same_day": true, "patch_ids": ["d8f43e3cfee247f6edbf4cb359c63fa9"], "statement_hash": "437f5a5cebeee4a0dc7c04664750c2672893e6eaafc7f6c2d486394ff529b2e2"}, "url": "/docs/compare/?release=9.5.18#9.5.18-a04ff3c749a3df8c", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}]}, {"id": "11.4-145ae36803661d4b", "cves": [], "html": "<p>修复检查预先存在的共享内存段是否仍被冲突的 postmaster 使用时的竞争条件（Tom Lane）</p>", "text": "修复检查预先存在的共享内存段是否仍被冲突的 postmaster 使用时的竞争条件（Tom Lane）", "title": "修复检查预先存在的共享内存段是否仍被冲突的 postmaster 使用时的竞争条件", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "6b410dc547bb255e33e18eaf615e83fe2390eb910f81b8796832a72dcf253fb8", "section_path": ["变更"], "commit_groups": [["3dcf45af5", "610747d86", "803f90ab7", "91a05390c", "a73c8caea", "b1cde67a4"]], "identity_text": "Fix race condition in check to see whether a pre-existing shared memory segment is still in use by a conflicting postmaster (Tom Lane)", "commit_aliases": ["3dcf45af5", "610747d86", "803f90ab7", "91a05390c", "a73c8caea", "b1cde67a4"], "source_commits": ["803f90ab7"], "source_entry_id": "11.4/changes/014", "db_id": "9fdc1030c6b13b64ab065e3b76c5248f", "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da", "relations": [{"rule": 2, "type": "equivalent", "target": "2b65208026195e9279c5a53ceba66228", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}}, {"rule": 2, "type": "equivalent", "target": "78c86fc36a8a5f6abd288250eaf289f1", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}}, {"rule": 2, "type": "equivalent", "target": "d7fe2a0ebf38ee8098fe1d6d28299d08", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}}, {"rule": 2, "type": "equivalent", "target": "ebcf9d6b59071557e6ee1fbdc63e94b6", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}}], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "2b65208026195e9279c5a53ceba66228", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复检查预先存在的共享内存段是否仍被冲突的 postmaster 使用时的竞争条件", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}, "url": "/docs/compare/?release=10.9#10.9-145ae36803661d4b", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "78c86fc36a8a5f6abd288250eaf289f1", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "修复检查冲突 postmaster 是否仍在使用既有共享内存段的竞态条件", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}, "url": "/docs/compare/?release=9.6.14#9.6.14-bf0209ff63e0472d", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "ebcf9d6b59071557e6ee1fbdc63e94b6", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "修复检查冲突 postmaster 是否仍在使用既有共享内存段的竞态条件", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}, "url": "/docs/compare/?release=9.5.18#9.5.18-bf0209ff63e0472d", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "d7fe2a0ebf38ee8098fe1d6d28299d08", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "修复检查冲突 postmaster 是否仍在使用既有共享内存段的竞态条件", "evidence": {"same_day": true, "patch_ids": ["7bd7781fee3550eb7607c07befef081a"], "statement_hash": "dd879be66b00ecee021da17e7068e63e61bdac9b9606c0740bb936aaf5bd26da"}, "url": "/docs/compare/?release=9.4.23#9.4.23-bf0209ff63e0472d", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "11.4-a823fd850d88d647", "cves": [], "html": "<p>修复 WAL 接收进程信号处理函数中的不安全代码（Tom Lane）</p>\n<p>这避免了 WAL 接收进程进程在收到关闭指令时崩溃或死锁的罕见问题。</p>", "text": "修复 WAL 接收进程信号处理函数中的不安全代码（Tom Lane） 这避免了 WAL 接收进程进程在收到关闭指令时崩溃或死锁的罕见问题。", "title": "修复 WAL 接收进程信号处理函数中的不安全代码", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "c70c8a4c88477b8e81959dd587bd85ecb8a2e783f5f86fd705e6ab643b04cc95", "section_path": ["变更"], "commit_groups": [["9346d396f", "a1a789eb5", "ac8f2e1ef"]], "identity_text": "Fix unsafe coding in walreceiver's signal handler (Tom Lane) This avoids rare problems in which the walreceiver process would crash or deadlock when commanded to shut down.", "commit_aliases": ["9346d396f", "a1a789eb5", "ac8f2e1ef"], "source_commits": ["9346d396f"], "source_entry_id": "11.4/changes/015", "db_id": "7dc528f664222144aa28b9edeb5327c6", "patch_ids": ["f2e22964eabc179f95553f6b9059a5ef"], "statement_hash": "4b1430a059dec2f4a9cd3ead915c5cd5c3f3911bf3fab76d21a85f99411f320b", "relations": [{"rule": 2, "type": "equivalent", "target": "9646d246d6c4313f23263b31794387ef", "evidence": {"same_day": true, "patch_ids": ["f2e22964eabc179f95553f6b9059a5ef"], "statement_hash": "4b1430a059dec2f4a9cd3ead915c5cd5c3f3911bf3fab76d21a85f99411f320b"}}], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "9646d246d6c4313f23263b31794387ef", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复 WAL 接收进程信号处理函数中的不安全代码", "evidence": {"same_day": true, "patch_ids": ["f2e22964eabc179f95553f6b9059a5ef"], "statement_hash": "4b1430a059dec2f4a9cd3ead915c5cd5c3f3911bf3fab76d21a85f99411f320b"}, "url": "/docs/compare/?release=10.9#10.9-a823fd850d88d647", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}]}, {"id": "11.4-4c8922c4b309d53f", "cves": [], "html": "<p>避免在未连接到特定数据库的进程中，为检查参数而尝试访问数据库（Vignesh C，Andres Freund）</p>\n<p>此错误可能导致 <span>“<span>cannot read pg_class without having selected a database</span>”</span> 等失败。</p>", "text": "避免在未连接到特定数据库的进程中，为检查参数而尝试访问数据库（Vignesh C，Andres Freund） 此错误可能导致 “cannot read pg_class without having selected a database” 等失败。", "title": "避免在未连接到特定数据库的进程中，为检查参数而尝试访问数据库", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "cc03b84e150e13131d76dd41ba5f9cffacd7c6a63ab680f2e8b0b2d2bc3bcb77", "section_path": ["变更"], "commit_groups": [["483b2d7ae", "52ad5fc0a", "69f32206d", "b8607e15e", "c01556017", "fff2a7d7b"]], "identity_text": "Avoid attempting to do database accesses for parameter checking in processes that are not connected to a specific database (Vignesh C, Andres Freund) This error could result in failures like cannot read pg_class without having selected a database.", "commit_aliases": ["483b2d7ae", "52ad5fc0a", "69f32206d", "b8607e15e", "c01556017", "fff2a7d7b"], "source_commits": ["c01556017"], "source_entry_id": "11.4/changes/016", "db_id": "b0a2c3f14f56fa7697ddbdcfd9782707", "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7", "relations": [{"rule": 2, "type": "equivalent", "target": "827a6d2e0daa51d02fae5f72e9ed1c60", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}}, {"rule": 2, "type": "equivalent", "target": "8a9e52a1d52618e73a157df3f8bb3bec", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}}, {"rule": 2, "type": "equivalent", "target": "90744f89a54c75c9d18bbda103670c0b", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}}, {"rule": 2, "type": "equivalent", "target": "93eb49d1a9fa05b38f11502f6653af76", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}}], "version": "11.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "8a9e52a1d52618e73a157df3f8bb3bec", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "避免在未连接到特定数据库的进程中，为检查参数而尝试访问数据库", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}, "url": "/docs/compare/?release=10.9#10.9-4c8922c4b309d53f", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "93eb49d1a9fa05b38f11502f6653af76", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "避免在未连接到特定数据库的进程中尝试为参数检查做数据库访问", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}, "url": "/docs/compare/?release=9.6.14#9.6.14-6d1c297754a0d746", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "90744f89a54c75c9d18bbda103670c0b", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "避免在未连接到特定数据库的进程中尝试为参数检查做数据库访问", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}, "url": "/docs/compare/?release=9.5.18#9.5.18-6d1c297754a0d746", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "827a6d2e0daa51d02fae5f72e9ed1c60", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "避免在未连接到特定数据库的进程中尝试为参数检查做数据库访问", "evidence": {"same_day": true, "patch_ids": ["eb7ca5a3deb1764915b19a4212f1d25e"], "statement_hash": "1a7670883364a8b3a9b3127f168808c3902ef044f9e9a3683497cbacab1e08c7"}, "url": "/docs/compare/?release=9.4.23#9.4.23-6d1c297754a0d746", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "11.4-c7288a946e02db73", "cves": [], "html": "<p>避免使用 SSL 且 OpenSSL 的待处理数据缓冲区恰好包含 256 字节整数倍的数据时，<span>libpq</span> 可能挂起的问题（David Binderman）</p>", "text": "避免使用 SSL 且 OpenSSL 的待处理数据缓冲区恰好包含 256 字节整数倍的数据时，libpq 可能挂起的问题（David Binderman）", "title": "避免使用 SSL 且 OpenSSL 的待处理数据缓冲区恰好包含 256 字节整数倍的数据时，libpq 可能挂起的问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "10f72050c28b6fbdaea74574e2b1389281e6dbc3e54cb5d9ad410d4fc802005c", "section_path": ["变更"], "commit_groups": [["0ec3d2ab2", "6b0e9411f", "8eaba0b93", "ddf927fb1", "e3bf3c0f8"]], "identity_text": "Avoid possible hang in libpq if using SSL and OpenSSL's pending-data buffer contains an exact multiple of 256 bytes (David Binderman)", "commit_aliases": ["0ec3d2ab2", "6b0e9411f", "8eaba0b93", "ddf927fb1", "e3bf3c0f8"], "source_commits": ["6b0e9411f"], "source_entry_id": "11.4/changes/017", "db_id": "070be28dd028f1fa3df358e99ae6bb1e", "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e", "relations": [{"rule": 2, "type": "equivalent", "target": "15e672bae169e5cd252f630b18a1d999", "evidence": {"same_day": true, "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e"}}, {"rule": 2, "type": "equivalent", "target": "79f9916a73bfa81f171c0fe62097cf42", "evidence": {"same_day": true, "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e"}}, {"rule": 2, "type": "equivalent", "target": "9d356c18f9d74f27357cb54c80b03d74", "evidence": {"same_day": true, "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e"}}], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "79f9916a73bfa81f171c0fe62097cf42", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "避免使用 SSL 且 OpenSSL 的待处理数据缓冲区恰好包含 256 字节整数倍的数据时，libpq 可能挂起的问题", "evidence": {"same_day": true, "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e"}, "url": "/docs/compare/?release=10.9#10.9-c7288a946e02db73", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "15e672bae169e5cd252f630b18a1d999", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "避免使用 SSL 且 OpenSSL 未决数据缓冲区包含恰为 256 字节整数倍的数据时 libpq 可能的挂起", "evidence": {"same_day": true, "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e"}, "url": "/docs/compare/?release=9.6.14#9.6.14-3c27cb74b6e475f3", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "9d356c18f9d74f27357cb54c80b03d74", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "避免使用 SSL 且 OpenSSL 未决数据缓冲区包含恰为 256 字节整数倍的数据时 libpq 可能的挂起", "evidence": {"same_day": true, "patch_ids": ["0ddf689374641b24ad9b32c07a6d3b25"], "statement_hash": "5b71b4978f6a2e1c17c50d9d6ced5eb2c62a34a8526033fd5b36f7dabc1fe80e"}, "url": "/docs/compare/?release=9.5.18#9.5.18-3c27cb74b6e475f3", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}]}, {"id": "11.4-5dc50618e2a2cb30", "cves": [], "html": "<p>改进 <span>initdb</span> 对系统时区多个等效名称的处理（Tom Lane，Andrew Gierth）</p>\n<p>如果 <code>/etc/localtime</code> 符号链接存在，则让 <span>initdb</span> 检查它，以便在系统时区的多个等效名称之间作出选择。这使 <span>initdb</span> 在存在多个相同时区时，更有可能选择用户预期的时区名。如果 <code>/etc/localtime</code> 不是指向时区数据文件的符号链接，或者时区是由 <code>TZ</code> 环境变量确定的，则行为不变。</p>\n<p>另外，如果 <code>TZ</code> 和 <code>/etc/localtime</code> 都未提供线索，则优先选择 <code>UTC</code>，而非该时区的其他拼写。这修复了 <span>tzdata</span> 2019a 将 <code>UCT</code> 和 <code>UTC</code> 时区名设为等效后引入的不便：<span>initdb</span> 之前会优先选择几乎没有人想要的 <code>UCT</code>。</p>", "text": "改进 initdb 对系统时区多个等效名称的处理（Tom Lane，Andrew Gierth） 如果 /etc/localtime 符号链接存在，则让 initdb 检查它，以便在系统时区的多个等效名称之间作出选择。这使 initdb 在存在多个相同时区时，更有可能选择用户预期的时区名。如果 /etc/localtime 不是指向时区数据文件的符号链接，或者时区是由 TZ 环境变量确定的，则行为不变。 另外，如果 TZ 和 /etc/localtime 都未提供线索，则优先选择 UTC，而非该时区的其他拼写。这修复了 tzdata 2019a 将 UCT 和 UTC 时区名设为等效后引入的不便：initdb 之前会优先选择几乎没有人想要的 UCT。", "title": "改进 initdb 对系统时区多个等效名称的处理", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "a9324abefcb86490993f6500694a188b344669e2a048e4c4962ab76976573426", "section_path": ["变更"], "commit_groups": [["23bd3cec6", "37011bcb3", "75b0f21e1", "77dc741a1", "8de574aa8", "995b4fe0b"], ["2913a892e", "5f5b6667e", "6335f8a99", "6c66865f3", "7f28fc8e9", "e3846a00c"]], "identity_text": "Improve initdb's handling of multiple equivalent names for the system time zone (Tom Lane, Andrew Gierth) Make initdb examine the /etc/localtime symbolic link, if that exists, to break ties between equivalent names for the system time zone. This makes initdb more likely to select the time zone name that the user would expect when multiple identical time zones exist. It will not change the behavior if /etc/localtime is not a symlink to a zone data file, nor if the time zone is determined from the TZ environment variable. Separately, prefer UTC over other spellings of that time zone, when neither TZ nor /etc/localtime provide a hint. This fixes an annoyance introduced by tzdata 2019a's change to make the UCT and UTC zone names equivalent: initdb was then preferring UCT, which almost nobody wants.", "commit_aliases": ["23bd3cec6", "2913a892e", "37011bcb3", "5f5b6667e", "6335f8a99", "6c66865f3", "75b0f21e1", "77dc741a1", "7f28fc8e9", "8de574aa8", "995b4fe0b", "e3846a00c"], "source_commits": ["7f28fc8e9", "995b4fe0b"], "source_entry_id": "11.4/changes/018", "db_id": "2497b4a144d095fd21f0460b26be5306", "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034", "relations": [{"rule": 2, "type": "equivalent", "target": "0728457310d87fd417634bd16129a04b", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}}, {"rule": 2, "type": "equivalent", "target": "11ce04410301a153e6e0050f897d608d", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}}, {"rule": 2, "type": "equivalent", "target": "29f18f1ebe746d38221ceef434727be3", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}}, {"rule": 2, "type": "equivalent", "target": "db9d638dfd65d89220d5cf61cd517612", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}}], "version": "11.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "0728457310d87fd417634bd16129a04b", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "改进 initdb 对系统时区多个等效名称的处理", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}, "url": "/docs/compare/?release=10.9#10.9-5dc50618e2a2cb30", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "db9d638dfd65d89220d5cf61cd517612", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "改进 initdb 对系统时区多个等价名称的处理", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}, "url": "/docs/compare/?release=9.6.14#9.6.14-86822b1aaeb92736", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "11ce04410301a153e6e0050f897d608d", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "改进 initdb 对系统时区多个等价名称的处理", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}, "url": "/docs/compare/?release=9.5.18#9.5.18-86822b1aaeb92736", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "29f18f1ebe746d38221ceef434727be3", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "改进 initdb 对系统时区多个等价名称的处理", "evidence": {"same_day": true, "patch_ids": ["429556efc2543a34bba58149a13d0819", "d2d7849fe4c66de277698d46ca632415"], "statement_hash": "7f4a77c968fe12e2e76328fdf2dd68ef7062f7658b8085c1b882a309bf505034"}, "url": "/docs/compare/?release=9.4.23#9.4.23-86822b1aaeb92736", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "11.4-aaf68b94efa73982", "cves": [], "html": "<p>修复 <span>pg_dump</span> 和 <span>pg_dumpall</span> 为数据库和表空间输出的 <code>GRANT</code> 命令的顺序（Nathan Bossart，Michael Paquier）</p>\n<p>如果执行过级联授权，恢复可能因 <code>GRANT</code> 命令的顺序未遵循相互依赖关系而失败。</p>", "text": "修复 pg_dump 和 pg_dumpall 为数据库和表空间输出的 GRANT 命令的顺序（Nathan Bossart，Michael Paquier） 如果执行过级联授权，恢复可能因 GRANT 命令的顺序未遵循相互依赖关系而失败。", "title": "修复 pg_dump 和 pg_dumpall 为数据库和表空间输出的 GRANT 命令的顺序", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "b5e95950aabdf371f44fa268fc770c95eca1941a77c443612d6b0fdbf56f0ea3", "section_path": ["变更"], "commit_groups": [["0c2a5a862", "8357a413f", "a21fb12e7", "b8c6014a6"], ["156c0c2df", "2ccebcd23", "a7b2fca15", "c82e8ba00"]], "identity_text": "Fix ordering of GRANT commands emitted by pg_dump and pg_dumpall for databases and tablespaces (Nathan Bossart, Michael Paquier) If cascading grants had been issued, restore might fail due to the GRANT commands being given in an order that didn't respect their interdependencies.", "commit_aliases": ["0c2a5a862", "156c0c2df", "2ccebcd23", "8357a413f", "a21fb12e7", "a7b2fca15", "b8c6014a6", "c82e8ba00"], "source_commits": ["8357a413f", "a7b2fca15"], "source_entry_id": "11.4/changes/019", "db_id": "cc9ed4301021ec43bca66ca9568b003a", "patch_ids": ["52de165cd6760b00b1e03e4d6894abb9", "8524b189c0b998af61d8dbb30864f060"], "statement_hash": "9ce94238abfe017444f88bd175269774d6a65893b498ebc98d692df324935c75", "relations": [{"rule": 2, "type": "equivalent", "target": "53c55f91fe557ae3bbfb96af0611ca2d", "evidence": {"same_day": true, "patch_ids": ["52de165cd6760b00b1e03e4d6894abb9", "8524b189c0b998af61d8dbb30864f060"], "statement_hash": "9ce94238abfe017444f88bd175269774d6a65893b498ebc98d692df324935c75"}}, {"rule": 2, "type": "equivalent", "target": "8f8b9462a8348a08c814bea5017db5f8", "evidence": {"same_day": true, "patch_ids": ["52de165cd6760b00b1e03e4d6894abb9", "8524b189c0b998af61d8dbb30864f060"], "statement_hash": "9ce94238abfe017444f88bd175269774d6a65893b498ebc98d692df324935c75"}}], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "53c55f91fe557ae3bbfb96af0611ca2d", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复 pg_dump 和 pg_dumpall 为数据库和表空间输出的 GRANT 命令的顺序", "evidence": {"same_day": true, "patch_ids": ["52de165cd6760b00b1e03e4d6894abb9", "8524b189c0b998af61d8dbb30864f060"], "statement_hash": "9ce94238abfe017444f88bd175269774d6a65893b498ebc98d692df324935c75"}, "url": "/docs/compare/?release=10.9#10.9-aaf68b94efa73982", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "8f8b9462a8348a08c814bea5017db5f8", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "修复 pg_dump 和 pg_dumpall 为数据库和表空间发出的 GRANT 命令的顺序", "evidence": {"same_day": true, "patch_ids": ["52de165cd6760b00b1e03e4d6894abb9", "8524b189c0b998af61d8dbb30864f060"], "statement_hash": "9ce94238abfe017444f88bd175269774d6a65893b498ebc98d692df324935c75"}, "url": "/docs/compare/?release=9.6.14#9.6.14-224df9b403f02d2e", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}]}, {"id": "11.4-954e42d055225bb3", "cves": [], "html": "<p>让 <span>pg_dump</span> 先使用 <code>CREATE TABLE</code>，再使用 <code>ATTACH PARTITION</code> 重建表分区，而非在创建命令中包含 <code>PARTITION OF</code>（Álvaro Herrera，David Rowley）</p>\n<p>这避免了分区列顺序可能被更改以匹配父表而产生的问题。此外，即使未恢复父表，现在也可将分区从转储中恢复为独立表；<code>ATTACH</code> 会失败，但可以忽略该错误。</p>", "text": "让 pg_dump 先使用 CREATE TABLE，再使用 ATTACH PARTITION 重建表分区，而非在创建命令中包含 PARTITION OF（Álvaro Herrera，David Rowley） 这避免了分区列顺序可能被更改以匹配父表而产生的问题。此外，即使未恢复父表，现在也可将分区从转储中恢复为独立表；ATTACH 会失败，但可以忽略该错误。", "title": "让 pg_dump 先使用 CREATE TABLE，再使用 ATTACH PARTITION 重建表分区，而非在创建命令中包含 PARTITION OF", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "58b752b2c246074ef0e9bb6eb5f4391dfd9465136b0407c09f967ffee85fa813", "section_path": ["变更"], "commit_groups": [["1eb8a5ea4", "33a53130a", "6a781c4f5"]], "identity_text": "Make pg_dump recreate table partitions using CREATE TABLE then ATTACH PARTITION, rather than including PARTITION OF in the creation command (Álvaro Herrera, David Rowley) This avoids problems with the partition's column order possibly being changed to match the parent's. Also, a partition is now restorable from the dump (as a standalone table) even if its parent table isn't restored; the ATTACH will fail, but that can just be ignored.", "commit_aliases": ["1eb8a5ea4", "33a53130a", "6a781c4f5"], "source_commits": ["6a781c4f5"], "source_entry_id": "11.4/changes/020", "db_id": "5c86e1b7df978d5290b84c6fca471cfd", "patch_ids": ["cc91a2b08360fc8a3de3bd404bd9fec8"], "statement_hash": "d1546ec43919842903100035d1f4e925801c09343a4e3fb4f169dbd28d4db6a7", "relations": [{"rule": 2, "type": "equivalent", "target": "22796d8c8ab1d939625dc4697d332f04", "evidence": {"same_day": true, "patch_ids": ["cc91a2b08360fc8a3de3bd404bd9fec8"], "statement_hash": "d1546ec43919842903100035d1f4e925801c09343a4e3fb4f169dbd28d4db6a7"}}], "version": "11.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "22796d8c8ab1d939625dc4697d332f04", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "让 pg_dump 先使用 CREATE TABLE，再使用 ATTACH PARTITION 重建表分区，而非在创建命令中包含 PARTITION OF", "evidence": {"same_day": true, "patch_ids": ["cc91a2b08360fc8a3de3bd404bd9fec8"], "statement_hash": "d1546ec43919842903100035d1f4e925801c09343a4e3fb4f169dbd28d4db6a7"}, "url": "/docs/compare/?release=10.9#10.9-954e42d055225bb3", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}]}, {"id": "11.4-8f5cdbadf7e64764", "cves": [], "html": "<p>修复 <span>reindexdb</span> 中误导性的错误报告（Julien Rouhaud）</p>", "text": "修复 reindexdb 中误导性的错误报告（Julien Rouhaud）", "title": "修复 reindexdb 中误导性的错误报告", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "f7a2126690405613480bbda3156c9bcb1fb10333b63d66ed2db8febb2aa34e5f", "section_path": ["变更"], "commit_groups": [["0c132d458", "82ed20e15", "c6354e943", "e16ab408f", "e17fba8d8", "e51bad8fb"]], "identity_text": "Fix misleading error reports from reindexdb (Julien Rouhaud)", "commit_aliases": ["0c132d458", "82ed20e15", "c6354e943", "e16ab408f", "e17fba8d8", "e51bad8fb"], "source_commits": ["e16ab408f"], "source_entry_id": "11.4/changes/021", "db_id": "856a02cbcad008d09c38f39351e36954", "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046", "relations": [{"rule": 2, "type": "equivalent", "target": "25db0b7e82ec00fbd8bb76aa1b4926da", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}}, {"rule": 2, "type": "equivalent", "target": "41d93a93d28ddfdfdfe6a075f18132b9", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}}, {"rule": 2, "type": "equivalent", "target": "621ba5703121e17eb7c7b165ac3b8066", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}}, {"rule": 2, "type": "equivalent", "target": "cc0588e0008f5e9301db2d09b62acc48", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}}], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "621ba5703121e17eb7c7b165ac3b8066", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复 reindexdb 中误导性的错误报告", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}, "url": "/docs/compare/?release=10.9#10.9-8f5cdbadf7e64764", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "25db0b7e82ec00fbd8bb76aa1b4926da", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "修复 reindexdb 的误导性错误报告", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}, "url": "/docs/compare/?release=9.6.14#9.6.14-de574d8448a89f60", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "41d93a93d28ddfdfdfe6a075f18132b9", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "修复 reindexdb 的误导性错误报告", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}, "url": "/docs/compare/?release=9.5.18#9.5.18-de574d8448a89f60", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "cc0588e0008f5e9301db2d09b62acc48", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "修复 reindexdb 的误导性错误报告", "evidence": {"same_day": true, "patch_ids": ["87f13351d4c357a600f278b50c6f2940"], "statement_hash": "24f236e255b0d0fda553a4a8105a9abe2535c98cf506d65eb7b5e9de3e359046"}, "url": "/docs/compare/?release=9.4.23#9.4.23-de574d8448a89f60", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "11.4-92161b4c7a674465", "cves": [], "html": "<p>确保 <span>vacuumdb</span> 在使用并行作业期间发生错误时返回正确状态（Julien Rouhaud）</p>", "text": "确保 vacuumdb 在使用并行作业期间发生错误时返回正确状态（Julien Rouhaud）", "title": "确保 vacuumdb 在使用并行作业期间发生错误时返回正确状态", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "75a82fb689c7eea82a60352d207b1d0a7ec5ecf25a89b6e48d0b754dd740b050", "section_path": ["变更"], "commit_groups": [["25f12acd5", "3ae3c18b3", "a475b1e77", "a9a886c6f", "db8802a99"]], "identity_text": "Ensure that vacuumdb returns correct status if an error occurs while using parallel jobs (Julien Rouhaud)", "commit_aliases": ["25f12acd5", "3ae3c18b3", "a475b1e77", "a9a886c6f", "db8802a99"], "source_commits": ["25f12acd5"], "source_entry_id": "11.4/changes/022", "db_id": "acddf8f70b395fb3a515868a1ce8dc8b", "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9", "relations": [{"rule": 2, "type": "equivalent", "target": "56918142430354517d667af46038dd9c", "evidence": {"same_day": true, "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9"}}, {"rule": 2, "type": "equivalent", "target": "ad8e95706176923d6519a32fc781a1c5", "evidence": {"same_day": true, "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9"}}, {"rule": 2, "type": "equivalent", "target": "c86f22948fad07ea1827c34000c64949", "evidence": {"same_day": true, "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9"}}], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "ad8e95706176923d6519a32fc781a1c5", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "确保 vacuumdb 在使用并行作业期间发生错误时返回正确状态", "evidence": {"same_day": true, "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9"}, "url": "/docs/compare/?release=10.9#10.9-92161b4c7a674465", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "56918142430354517d667af46038dd9c", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "确保使用并行作业时发生错误 vacuumdb 返回正确的状态", "evidence": {"same_day": true, "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9"}, "url": "/docs/compare/?release=9.6.14#9.6.14-f8ffcce72c191ba7", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "c86f22948fad07ea1827c34000c64949", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "确保使用并行作业时发生错误 vacuumdb 返回正确的状态", "evidence": {"same_day": true, "patch_ids": ["2e158c97054dfc69c66b85ef23a7b7cd"], "statement_hash": "bef6ed8f3612a529a970373d44b838d745f58c24fe34e3c7d45d72ca824215a9"}, "url": "/docs/compare/?release=9.5.18#9.5.18-f8ffcce72c191ba7", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}]}, {"id": "11.4-de6bc0b2c9d79da3", "cves": [], "html": "<p>修复 <code>contrib/auto_explain</code>，使其不会在并行查询中引发问题（Tom Lane）</p>\n<p>以前，即使 <code>auto_explain</code> 没有记录父查询，并行工作进程也可能尝试记录自己的查询。这有时能够工作，但令人困惑，而且在某些情况下会导致 <span>“<span>could not find key N in shm TOC</span>”</span> 等失败。</p>\n<p>此外，修复了一个相差一的错误，该错误使得即使采样率设置为 1.0，也不一定记录每条查询。</p>", "text": "修复 contrib/auto_explain，使其不会在并行查询中引发问题（Tom Lane） 以前，即使 auto_explain 没有记录父查询，并行工作进程也可能尝试记录自己的查询。这有时能够工作，但令人困惑，而且在某些情况下会导致 “could not find key N in shm TOC” 等失败。 此外，修复了一个相差一的错误，该错误使得即使采样率设置为 1.0，也不一定记录每条查询。", "title": "修复 contrib/auto_explain，使其不会在并行查询中引发问题", "commits": [], "section": "变更", "category": "bugfix", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "b466068400766dae46d613e3adecb05eeb87c8070856ffbd231e184a752f73eb", "section_path": ["变更"], "commit_groups": [["2cd4e8357", "57e85fa2c", "ba38967d7", "efa121ae6"]], "identity_text": "Fix contrib/auto_explain to not cause problems in parallel queries (Tom Lane) Previously, a parallel worker might try to log its query even if the parent query were not being logged by auto_explain. This would work sometimes, but it's confusing, and in some cases it resulted in failures like could not find key N in shm TOC. Also, fix an off-by-one error that resulted in not necessarily logging every query even when the sampling rate is set to 1.0.", "commit_aliases": ["2cd4e8357", "57e85fa2c", "ba38967d7", "efa121ae6"], "source_commits": ["57e85fa2c"], "source_entry_id": "11.4/changes/023", "db_id": "867d52053103c00b03acd3f3f00152e5", "patch_ids": ["8b03a649f3fad64df38bb03da43ae49c"], "statement_hash": "bb8abec9d08fd4ad7446e3dad199fa7d0da5985dc319314302ac1ab70c2cde2e", "relations": [{"rule": 2, "type": "equivalent", "target": "5c04af6178328e0a980d37f41159635a", "evidence": {"same_day": true, "patch_ids": ["8b03a649f3fad64df38bb03da43ae49c"], "statement_hash": "bb8abec9d08fd4ad7446e3dad199fa7d0da5985dc319314302ac1ab70c2cde2e"}}, {"rule": 2, "type": "equivalent", "target": "cbd8938dfb244e15d908617bea264247", "evidence": {"same_day": true, "patch_ids": ["8b03a649f3fad64df38bb03da43ae49c"], "statement_hash": "bb8abec9d08fd4ad7446e3dad199fa7d0da5985dc319314302ac1ab70c2cde2e"}}], "version": "11.4", "category_label": "BUG 修复", "also_in": [], "variants": [], "related_changes": [{"db_id": "cbd8938dfb244e15d908617bea264247", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "修复 contrib/auto_explain，使其不会在并行查询中引发问题", "evidence": {"same_day": true, "patch_ids": ["8b03a649f3fad64df38bb03da43ae49c"], "statement_hash": "bb8abec9d08fd4ad7446e3dad199fa7d0da5985dc319314302ac1ab70c2cde2e"}, "url": "/docs/compare/?release=10.9#10.9-de6bc0b2c9d79da3", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "5c04af6178328e0a980d37f41159635a", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "修复 contrib/auto_explain 在并行查询中不造成问题", "evidence": {"same_day": true, "patch_ids": ["8b03a649f3fad64df38bb03da43ae49c"], "statement_hash": "bb8abec9d08fd4ad7446e3dad199fa7d0da5985dc319314302ac1ab70c2cde2e"}, "url": "/docs/compare/?release=9.6.14#9.6.14-45b29cf3d60e721c", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}]}, {"id": "11.4-e03b5189b6fffe98", "cves": [], "html": "<p>在 <code>contrib/postgres_fdw</code> 中，考虑本地 <code>BEFORE ROW UPDATE</code> 触发器可能进行的数据修改（Shohei Mochizuki）</p>\n<p>如果触发器修改了 <code>UPDATE</code> 原本未更改的列，新值就不会传送到远程服务器。</p>", "text": "在 contrib/postgres_fdw 中，考虑本地 BEFORE ROW UPDATE 触发器可能进行的数据修改（Shohei Mochizuki） 如果触发器修改了 UPDATE 原本未更改的列，新值就不会传送到远程服务器。", "title": "在 contrib/postgres_fdw 中，考虑本地 BEFORE ROW UPDATE 触发器可能进行的数据修改", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "26bce560459eb5964928ba6c97d993a1a6babdc58212880d2d09a68ae14c54b1", "section_path": ["变更"], "commit_groups": [["0f2b23426", "1a3d9f62c", "1ade21e7f", "214460182", "8b6da83d1", "eddb79705"]], "identity_text": "In contrib/postgres_fdw, account for possible data modifications by local BEFORE ROW UPDATE triggers (Shohei Mochizuki) If a trigger modified a column that was otherwise not changed by the UPDATE, the new value was not transmitted to the remote server.", "commit_aliases": ["0f2b23426", "1a3d9f62c", "1ade21e7f", "214460182", "8b6da83d1", "eddb79705"], "source_commits": ["214460182"], "source_entry_id": "11.4/changes/024", "db_id": "427e4bd42c0da009e711e847289b5aba", "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4", "relations": [{"rule": 2, "type": "equivalent", "target": "06f01d6eadd7afbc7b3d4b948b8e4f90", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}}, {"rule": 2, "type": "equivalent", "target": "6b4d8ed35a122c32db01a362f3e05c4c", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}}, {"rule": 2, "type": "equivalent", "target": "7ac321b9e594e3cbdf21aef118d727f0", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}}, {"rule": 2, "type": "equivalent", "target": "a981fad680adcd9a05f4935e525de0be", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}}], "version": "11.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "a981fad680adcd9a05f4935e525de0be", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "在 contrib/postgres_fdw 中，考虑本地 BEFORE ROW UPDATE 触发器可能进行的数据修改", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}, "url": "/docs/compare/?release=10.9#10.9-e03b5189b6fffe98", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "6b4d8ed35a122c32db01a362f3e05c4c", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "在 contrib/postgres_fdw 中，考虑本地 BEFORE ROW UPDATE 触发器可能做的数据修改", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}, "url": "/docs/compare/?release=9.6.14#9.6.14-c36b61bb81c0ed5c", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "7ac321b9e594e3cbdf21aef118d727f0", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "在 contrib/postgres_fdw 中，考虑本地 BEFORE ROW UPDATE 触发器可能做的数据修改", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}, "url": "/docs/compare/?release=9.5.18#9.5.18-c36b61bb81c0ed5c", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "06f01d6eadd7afbc7b3d4b948b8e4f90", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "在 contrib/postgres_fdw 中，考虑本地 BEFORE ROW UPDATE 触发器可能做的数据修改", "evidence": {"same_day": true, "patch_ids": ["5bf5b1e275b587efc4ae8ca354fd1734"], "statement_hash": "f605cc079a26930ac21fcb7d17f5206538bc580ad882e830fc1d6fb72b9967c4"}, "url": "/docs/compare/?release=9.4.23#9.4.23-c36b61bb81c0ed5c", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "11.4-5d8203e55ff49c70", "cves": [], "html": "<p>在 Windows 上，避免数据库编码设置为 SQL_ASCII 时尝试记录非 ASCII 字符串而发生失败（Noah Misch）</p>\n<p>代码原本假定此类字符串必须采用 UTF-8 编码，如果它们看起来不是有效编码就会抛出错误。现在直接将未经转换的字节传送到日志。</p>", "text": "在 Windows 上，避免数据库编码设置为 SQL_ASCII 时尝试记录非 ASCII 字符串而发生失败（Noah Misch） 代码原本假定此类字符串必须采用 UTF-8 编码，如果它们看起来不是有效编码就会抛出错误。现在直接将未经转换的字节传送到日志。", "title": "在 Windows 上，避免数据库编码设置为 SQL_ASCII 时尝试记录非 ASCII 字符串而发生失败", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "89c3c2b48cb06ce2ed7c7e1eb91d9020bd962923e14ed1ac01ef28f2a7344751", "section_path": ["变更"], "commit_groups": [["08e3fd96f", "409f5303c", "4ec14e5aa", "9dc65bcf9", "d02768ddd", "ff7555c4f"]], "identity_text": "On Windows, avoid failure when the database encoding is set to SQL_ASCII and we attempt to log a non-ASCII string (Noah Misch) The code had been assuming that such strings must be in UTF-8, and would throw an error if they didn't appear to be validly encoded. Now, just transmit the untranslated bytes to the log.", "commit_aliases": ["08e3fd96f", "409f5303c", "4ec14e5aa", "9dc65bcf9", "d02768ddd", "ff7555c4f"], "source_commits": ["4ec14e5aa"], "source_entry_id": "11.4/changes/025", "db_id": "35b6a0a367f4e2d5863af5838c3e6b28", "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e", "relations": [{"rule": 2, "type": "equivalent", "target": "2c1931e642611d8c1ba9050fb8776a58", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}}, {"rule": 2, "type": "equivalent", "target": "bd1665a7d5a8a6ec8893ea4f6c219cff", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}}, {"rule": 2, "type": "equivalent", "target": "c9bbd8496ebca7419d418dfb0f244799", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}}, {"rule": 2, "type": "equivalent", "target": "daa633bc14def51f60e1f5f581ef3fbb", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}}], "version": "11.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "c9bbd8496ebca7419d418dfb0f244799", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "在 Windows 上，避免数据库编码设置为 SQL_ASCII 时尝试记录非 ASCII 字符串而发生失败", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}, "url": "/docs/compare/?release=10.9#10.9-5d8203e55ff49c70", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "daa633bc14def51f60e1f5f581ef3fbb", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "在 Windows 上，避免数据库编码设为 SQL_ASCII 而我们尝试记录非 ASCII 字符串时的失败", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}, "url": "/docs/compare/?release=9.6.14#9.6.14-7b62bc22697c2f19", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "bd1665a7d5a8a6ec8893ea4f6c219cff", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "在 Windows 上，避免数据库编码设为 SQL_ASCII 而我们尝试记录非 ASCII 字符串时的失败", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}, "url": "/docs/compare/?release=9.5.18#9.5.18-7b62bc22697c2f19", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "2c1931e642611d8c1ba9050fb8776a58", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "在 Windows 上，避免数据库编码设为 SQL_ASCII 而我们尝试记录非 ASCII 字符串时的失败", "evidence": {"same_day": true, "patch_ids": ["47dc91829e094042769dab88ef8516aa"], "statement_hash": "5e03b7a9df25f330cb37ff980e6f9309d401831a8c498a88c635ff90a1dd1b1e"}, "url": "/docs/compare/?release=9.4.23#9.4.23-7b62bc22697c2f19", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}, {"id": "11.4-408a489c6bffae11", "cves": [], "html": "<p>使 <span>PL/pgSQL</span> 的头文件可安全用于 C++（George Tarasov）</p>", "text": "使 PL/pgSQL 的头文件可安全用于 C++（George Tarasov）", "title": "使 PL/pgSQL 的头文件可安全用于 C++", "commits": [], "section": "变更", "category": "improvement", "source_url": "/docs/release/11.4/#id-1.11.6.23.5", "source_hash": "54d81a4673a66a46160a794f8992c0a7ba9cfb71638ef15ec132b6fa13548e8c", "section_path": ["变更"], "commit_groups": [["312017fcc", "3f61b3205", "683c17b30", "c332c94ad", "da53e4f93", "db5d99916"]], "identity_text": "Make PL/pgSQL's header files C++-safe (George Tarasov)", "commit_aliases": ["312017fcc", "3f61b3205", "683c17b30", "c332c94ad", "da53e4f93", "db5d99916"], "source_commits": ["312017fcc"], "source_entry_id": "11.4/changes/026", "db_id": "813c6e2c25662776741b44521132b642", "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8", "relations": [{"rule": 2, "type": "equivalent", "target": "12a4e0e2fafe333711fec06e2d23cf8d", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}}, {"rule": 2, "type": "equivalent", "target": "77f5c99ec74a8d5ccf2159403506912d", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}}, {"rule": 2, "type": "equivalent", "target": "90b47ae08bd532fca5546077036a11f5", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}}, {"rule": 2, "type": "equivalent", "target": "b6e72893688fc4c2250cdd8b5b31822e", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}}], "version": "11.4", "category_label": "其他改进", "also_in": [], "variants": [], "related_changes": [{"db_id": "12a4e0e2fafe333711fec06e2d23cf8d", "kind": "equivalent", "version": "10.9", "label": "10.9", "title": "使 PL/pgSQL 的头文件可安全用于 C++", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}, "url": "/docs/compare/?release=10.9#10.9-408a489c6bffae11", "source_url": "/docs/release/10.9/#id-1.11.6.19.5"}, {"db_id": "77f5c99ec74a8d5ccf2159403506912d", "kind": "equivalent", "version": "9.6.14", "label": "9.6.14", "title": "使 PL/pgSQL 的头文件对 C++ 安全", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}, "url": "/docs/compare/?release=9.6.14#9.6.14-271fad01b562af3c", "source_url": "/docs/release/9.6.14/#id-1.11.6.15.5"}, {"db_id": "b6e72893688fc4c2250cdd8b5b31822e", "kind": "equivalent", "version": "9.5.18", "label": "9.5.18", "title": "使 PL/pgSQL 的头文件对 C++ 安全", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}, "url": "/docs/compare/?release=9.5.18#9.5.18-271fad01b562af3c", "source_url": "/docs/release/9.5.18/#id-1.11.6.12.5"}, {"db_id": "90b47ae08bd532fca5546077036a11f5", "kind": "equivalent", "version": "9.4.23", "label": "9.4.23", "title": "使 PL/pgSQL 的头文件对 C++ 安全", "evidence": {"same_day": true, "patch_ids": ["12741ccb4caee1d40f28177046eb9c13"], "statement_hash": "e92e5fd23e02ef2a319b40db31ffb270886e8d7f08479f5f1a87287287dd84c8"}, "url": "/docs/compare/?release=9.4.23#9.4.23-271fad01b562af3c", "source_url": "/docs/release/9.4.23/#id-1.11.6.8.6"}]}]}], "stats": [{"key": "all", "label": "全部变更", "count": 26}, {"key": "feature", "label": "新功能", "count": 0}, {"key": "bugfix", "label": "BUG 修复", "count": 16}, {"key": "security", "label": "安全相关", "count": 1}, {"key": "performance", "label": "性能改进", "count": 0}, {"key": "compatibility", "label": "兼容性变化", "count": 0}, {"key": "improvement", "label": "其他改进", "count": 9}], "total": 26, "release_count": 1, "cross_major": false, "cve_count": 1, "cves": [{"id": "CVE-2019-10164", "url": "https://www.postgresql.org/support/security/CVE-2019-10164/", "fixed": {"10": "10.9", "11": "11.4"}, "score": 7.5, "title": "修复 SCRAM 验证信息解析中的缓冲区溢出隐患", "vector": "AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "affected": {"10": "10", "11": "11"}, "component": "core server", "published": {"10": "2019-06-20", "11": "2019-06-20"}, "introduced": {}, "cvss_version": "3.0", "description_en": "An authenticated user could create a stack-based buffer overflow by changing their own password to a purpose-crafted value. In addition to the ability to crash the PostgreSQL server, this could be further exploited to execute arbitrary code as the PostgreSQL operating system account.\n\nAdditionally, a rogue server could send a specifically crafted message during the SCRAM authentication process and cause a libpq-enabled client to either crash or execute arbitrary code as the client's operating system account.\n\nThis issue is fixed by upgrading and restarting your PostgreSQL server as well as your libpq installations.\n\nThe PostgreSQL Project thanks Alexander Lakhin for reporting this problem.", "first_published": "2019-06-20", "fixed_version": "11.4"}], "cve_available": true, "remaining_cves": [], "security_regressions": [], "warnings": [], "candidate_count": 26, "already_in_source_count": 0, "duplicate_count": 0, "excluded_count": 0, "exclusions": [], "source_as_of": "2026-09-26", "security_as_of": "2026-09-26"}