{"already_in_source_count":0,"candidate_count":19,"cross_major":false,"cve_available":true,"cve_count":0,"cves":[],"duplicate_count":0,"excluded_count":0,"exclusions":[],"from_release":null,"groups":[{"age_days":1579,"build":"14.4","changes_count":19,"compatibility_count":0,"content_hash":"3d9061e5815218918f23fa13da3536b668d7f708107117dcf63a1938e65f1ed2","date":"2022-06-16","date_text":"2022-06-16","doc_git":"","doc_loaded_at":"2026-09-26T02:56:39.341991","entries":[{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["042b584c7","e28bb8851"],"commit_groups":[["042b584c7","e28bb8851"]],"commits":["042b584c7"],"cves":[],"db_id":"082f18c84b9f39b11b0d5ca1a31feca2","html":"\u003cp\u003e防止使用 \u003ccode\u003eCONCURRENTLY\u003c/code\u003e 选项创建或重建的索引可能出现的损坏（Álvaro Herrera）\u003ca href=\"https://postgr.es/c/042b584c7\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ev14 中增加的一项优化导致 \u003ccode\u003eCREATE INDEX ... CONCURRENTLY\u003c/code\u003e 和 \u003ccode\u003eREINDEX ... CONCURRENTLY\u003c/code\u003e 有时会遗漏在索引构建期间被更新的行。该优化已被回退。建议在安装此更新后重建所有使用 \u003ccode\u003eCONCURRENTLY\u003c/code\u003e 选项创建的索引。（或者，也可以不使用 \u003ccode\u003eCONCURRENTLY\u003c/code\u003e 选项来重建它们。）\u003c/p\u003e","id":"14.4-5ac6da95bbe21802","identity_text":"Prevent possible corruption of indexes created or rebuilt with the CONCURRENTLY option (Álvaro Herrera) An optimization added in v14 caused CREATE INDEX ... CONCURRENTLY and REINDEX ... CONCURRENTLY to sometimes miss indexing rows that were updated during the index build. Revert that optimization. It is recommended that any indexes made with the CONCURRENTLY option be rebuilt after installing this update. (Alternatively, rebuild them without CONCURRENTLY.)","part":"changes","patch_ids":["85c712c5f0129622922db49f9c720b97"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["042b584c7"],"source_entry_id":"14.4/changes/001","source_hash":"9f6f78c5e930015a412abf9355ca517b54cf56b340c47c790b7b4be0d92037e9","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"8ef3a88554194dc0ab029a0d7a37bcb5cf9e8848f74602d4c35ba5a07f7eb213","text":"防止使用 CONCURRENTLY 选项创建或重建的索引可能出现的损坏（Álvaro Herrera）§ v14 中增加的一项优化导致 CREATE INDEX ... CONCURRENTLY 和 REINDEX ... CONCURRENTLY 有时会遗漏在索引构建期间被更新的行。该优化已被回退。建议在安装此更新后重建所有使用 CONCURRENTLY 选项创建的索引。（或者，也可以不使用 CONCURRENTLY 选项来重建它们。）","title":"防止使用 CONCURRENTLY 选项创建或重建的索引可能出现的损坏","variants":[],"version":"14.4"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["cbcea3b91","fa5185b26"],"commit_groups":[["cbcea3b91","fa5185b26"]],"commits":["cbcea3b91"],"cves":[],"db_id":"d8b2e6dcbd5e951d86d7665cd3156351","html":"\u003cp\u003e加固 Memoize 计划节点以应对非确定性的相等函数（David Rowley）\u003ca href=\"https://postgr.es/c/cbcea3b91\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e如果数据类型的相等或 hash 函数在不同调用之间给出不一致的结果，Memoize 可能会崩溃。现在改为抛出运行时错误。\u003c/p\u003e","id":"14.4-dd1b112cbcb1ecc8","identity_text":"Harden Memoize plan node against non-deterministic equality functions (David Rowley) Memoize could crash if a data type's equality or hash functions gave inconsistent results across different calls. Throw a runtime error instead.","part":"changes","patch_ids":["8eaca48f1b75c862e7448b84db48c070"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["cbcea3b91"],"source_entry_id":"14.4/changes/002","source_hash":"be4c9558c09fcd4bc2e615aafb1f2dd89832ca2c1218d4fe8b4e71282b5d8090","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"e66db84a015987791db54ea46db51124d7422d017d709f8bb9306b801f16178f","text":"加固 Memoize 计划节点以应对非确定性的相等函数（David Rowley）§ 如果数据类型的相等或 hash 函数在不同调用之间给出不一致的结果，Memoize 可能会崩溃。现在改为抛出运行时错误。","title":"加固 Memoize 计划节点以应对非确定性的相等函数","variants":[],"version":"14.4"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["1e731ed12","23c2b76a8"],"commit_groups":[["1e731ed12","23c2b76a8"]],"commits":["23c2b76a8"],"cves":[],"db_id":"66ceb2a9671950d2933e79a7b4d75885","html":"\u003cp\u003e修复 Memoize 计划的不正确代价估算（David Rowley）\u003ca href=\"https://postgr.es/c/23c2b76a8\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这一错误可能导致在 Memoize 并非最佳计划时仍然使用它，或者因为为 Memoize 节点初始化过大的 hash 表而导致执行器启动时间过长。\u003c/p\u003e","id":"14.4-e554a3c981ecdd29","identity_text":"Fix incorrect cost estimates for Memoize plans (David Rowley) This mistake could lead to Memoize being used when it isn't really the best plan, or to very long executor startup times due to initializing an overly-large hash table for a Memoize node.","part":"changes","patch_ids":["9099f0cb68e85033e1b946bb7c37382f"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["23c2b76a8"],"source_entry_id":"14.4/changes/003","source_hash":"83c007202d1df0ccf708a4f667d23b8577ee59fc3bf1394477733ef297b2e482","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"4c76b0c4c9d1f982995f9cbf18ebadbcebd8c48e6b797e0b6739056417224699","text":"修复 Memoize 计划的不正确代价估算（David Rowley）§ 这一错误可能导致在 Memoize 并非最佳计划时仍然使用它，或者因为为 Memoize 节点初始化过大的 hash 表而导致执行器启动时间过长。","title":"修复 Memoize 计划的不正确代价估算","variants":[],"version":"14.4"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["1218780cc","199aac8b2","254cd7f31","77c1d92cb","d3ef5c3ef"],"commit_groups":[["1218780cc","199aac8b2","254cd7f31","77c1d92cb","d3ef5c3ef"]],"commits":["77c1d92cb"],"cves":[],"db_id":"0a6d4e2e5dc07a3bcb6eca8cf6ddadc0","html":"\u003cp\u003e修复当\u003cspan\u003e“\u003cspan\u003e整行变量\u003c/span\u003e”\u003c/span\u003e引用返回复合类型域的函数结果时的查询问题（Tom Lane）\u003ca href=\"https://postgr.es/c/77c1d92cb\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"14.4-0c9e3885001069b1","identity_text":"Fix queries in which a whole-row variable references the result of a function that returns a domain over composite type (Tom Lane)","part":"changes","patch_ids":["51d7b41fce0d47c9c4ae18945c7aec6b"],"related_changes":[{"db_id":"2715d5d7fa23e626decd1a6f9533ba78","evidence":{"patch_ids":["51d7b41fce0d47c9c4ae18945c7aec6b"],"same_day":false,"statement_hash":"f5ea095d9134daf52abae195e003fdf71711430459badb1005c1400f3fdb9e2b"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"修复当“整行变量”引用返回复合类型域的函数结果时的查询问题","url":"/docs/compare/?release=13.8#13.8-50726d68310ba0be","version":"13.8"},{"db_id":"3eceed07396e504740e2f516b576d5a4","evidence":{"patch_ids":["51d7b41fce0d47c9c4ae18945c7aec6b"],"same_day":false,"statement_hash":"f5ea095d9134daf52abae195e003fdf71711430459badb1005c1400f3fdb9e2b"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"修复当“整行变量”引用返回复合类型域的函数结果时的查询问题","url":"/docs/compare/?release=12.12#12.12-77cd15dba68234b7","version":"12.12"},{"db_id":"dba584dfbf44825e073ad5b5c532f321","evidence":{"patch_ids":["51d7b41fce0d47c9c4ae18945c7aec6b"],"same_day":false,"statement_hash":"f5ea095d9134daf52abae195e003fdf71711430459badb1005c1400f3fdb9e2b"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"修复当“整行变量”引用返回复合类型域的函数结果时的查询问题","url":"/docs/compare/?release=11.17#11.17-9bf5353da85cd5cb","version":"11.17"}],"relations":[{"evidence":{"patch_ids":["51d7b41fce0d47c9c4ae18945c7aec6b"],"same_day":false,"statement_hash":"f5ea095d9134daf52abae195e003fdf71711430459badb1005c1400f3fdb9e2b"},"rule":2,"target":"2715d5d7fa23e626decd1a6f9533ba78","type":"equivalent"},{"evidence":{"patch_ids":["51d7b41fce0d47c9c4ae18945c7aec6b"],"same_day":false,"statement_hash":"f5ea095d9134daf52abae195e003fdf71711430459badb1005c1400f3fdb9e2b"},"rule":2,"target":"3eceed07396e504740e2f516b576d5a4","type":"equivalent"},{"evidence":{"patch_ids":["51d7b41fce0d47c9c4ae18945c7aec6b"],"same_day":false,"statement_hash":"f5ea095d9134daf52abae195e003fdf71711430459badb1005c1400f3fdb9e2b"},"rule":2,"target":"dba584dfbf44825e073ad5b5c532f321","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["77c1d92cb"],"source_entry_id":"14.4/changes/004","source_hash":"1ef4f2c514b41ecd200635b4f8a8ca02f7c3fe2e33eab0ed95a825de519e1d03","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"f5ea095d9134daf52abae195e003fdf71711430459badb1005c1400f3fdb9e2b","text":"修复当“整行变量”引用返回复合类型域的函数结果时的查询问题（Tom Lane）§","title":"修复当“整行变量”引用返回复合类型域的函数结果时的查询问题","variants":[],"version":"14.4"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["301b91c56","79b58c6f6","7f7f1750d","ac51c9fba","b53442f6f","b7579b25c"],"commit_groups":[["301b91c56","79b58c6f6","7f7f1750d","ac51c9fba","b53442f6f","b7579b25c"]],"commits":["ac51c9fba"],"cves":[],"db_id":"270df56feaedbbacf9dd5f5ae3d67663","html":"\u003cp\u003e修复在提升引用了 \u003ccode\u003eGROUPING\u003c/code\u003e 函数的子 \u003ccode\u003eSELECT\u003c/code\u003e 时出现的 \u003cspan\u003e“\u003cspan\u003evariable not found in subplan target list\u003c/span\u003e”\u003c/span\u003e 规划器错误（Richard Guo）\u003ca href=\"https://postgr.es/c/ac51c9fba\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"14.4-b447fc5799dd6dff","identity_text":"Fix variable not found in subplan target list planner error when pulling up a sub-SELECT that's referenced in a GROUPING function (Richard Guo)","part":"changes","patch_ids":["f7c8eddb4b46334cd940960efb577a92"],"related_changes":[{"db_id":"3e1fc0407079adc134fb84e2cd2fd098","evidence":{"patch_ids":["f7c8eddb4b46334cd940960efb577a92"],"same_day":false,"statement_hash":"f1870dc18c9de1f38427ef2d0e6c7ad5f678a1caa5959ecdf490795627ba8a12"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"修复在提升引用了 GROUPING 函数的子 SELECT 时出现的 “variable not found in subplan target list” 规划器错误","url":"/docs/compare/?release=13.8#13.8-7963cc2b0388fba8","version":"13.8"},{"db_id":"ec1b7d59eeee7e177e1970ec8f3e0194","evidence":{"patch_ids":["f7c8eddb4b46334cd940960efb577a92"],"same_day":false,"statement_hash":"f1870dc18c9de1f38427ef2d0e6c7ad5f678a1caa5959ecdf490795627ba8a12"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"修复在提升引用了 GROUPING 函数的子 SELECT 时出现的 “variable not found in subplan target list” 规划器错误","url":"/docs/compare/?release=12.12#12.12-2e869022f4df7d4e","version":"12.12"},{"db_id":"3ebf1da3c1bec8887c59e66653e663dc","evidence":{"patch_ids":["f7c8eddb4b46334cd940960efb577a92"],"same_day":false,"statement_hash":"f1870dc18c9de1f38427ef2d0e6c7ad5f678a1caa5959ecdf490795627ba8a12"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"修复在提升引用了 GROUPING 函数的子 SELECT 时出现的 “variable not found in subplan target list” 规划器错误","url":"/docs/compare/?release=11.17#11.17-b829ec8b66f1c595","version":"11.17"},{"db_id":"5d2b06adbdf7fdd32a87835d06909207","evidence":{"patch_ids":["f7c8eddb4b46334cd940960efb577a92"],"same_day":false,"statement_hash":"f1870dc18c9de1f38427ef2d0e6c7ad5f678a1caa5959ecdf490795627ba8a12"},"kind":"equivalent","label":"10.22","source_url":"/docs/release/10.22/#id-1.11.6.6.6","title":"修复在提升引用了 GROUPING 函数的子 SELECT 时出现的 “variable not found in subplan target list” 规划器错误","url":"/docs/compare/?release=10.22#10.22-b829ec8b66f1c595","version":"10.22"}],"relations":[{"evidence":{"patch_ids":["f7c8eddb4b46334cd940960efb577a92"],"same_day":false,"statement_hash":"f1870dc18c9de1f38427ef2d0e6c7ad5f678a1caa5959ecdf490795627ba8a12"},"rule":2,"target":"3e1fc0407079adc134fb84e2cd2fd098","type":"equivalent"},{"evidence":{"patch_ids":["f7c8eddb4b46334cd940960efb577a92"],"same_day":false,"statement_hash":"f1870dc18c9de1f38427ef2d0e6c7ad5f678a1caa5959ecdf490795627ba8a12"},"rule":2,"target":"3ebf1da3c1bec8887c59e66653e663dc","type":"equivalent"},{"evidence":{"patch_ids":["f7c8eddb4b46334cd940960efb577a92"],"same_day":false,"statement_hash":"f1870dc18c9de1f38427ef2d0e6c7ad5f678a1caa5959ecdf490795627ba8a12"},"rule":2,"target":"5d2b06adbdf7fdd32a87835d06909207","type":"equivalent"},{"evidence":{"patch_ids":["f7c8eddb4b46334cd940960efb577a92"],"same_day":false,"statement_hash":"f1870dc18c9de1f38427ef2d0e6c7ad5f678a1caa5959ecdf490795627ba8a12"},"rule":2,"target":"ec1b7d59eeee7e177e1970ec8f3e0194","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["ac51c9fba"],"source_entry_id":"14.4/changes/005","source_hash":"e9c2ee228cbd8afabb1b7574d01768ce9c6f1ddb8a3d911ae13a55dc73a8053f","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"f1870dc18c9de1f38427ef2d0e6c7ad5f678a1caa5959ecdf490795627ba8a12","text":"修复在提升引用了 GROUPING 函数的子 SELECT 时出现的 “variable not found in subplan target list” 规划器错误（Richard Guo）§","title":"修复在提升引用了 GROUPING 函数的子 SELECT 时出现的 “variable not found in subplan target list” 规划器错误","variants":[],"version":"14.4"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["435251b85","5c3b5f7db","a36196972","bf4717b09","d628ce048","fb646cbd5"],"commit_groups":[["435251b85","5c3b5f7db","a36196972","bf4717b09","d628ce048","fb646cbd5"]],"commits":["5c3b5f7db"],"cves":[],"db_id":"ee8923fb2ef35829290a311870639d99","html":"\u003cp\u003e防止 \u003ccode\u003epg_stat_get_subscription()\u003c/code\u003e 可能返回包含垃圾值的额外行（Kuntal Ghosh）\u003ca href=\"https://postgr.es/c/5c3b5f7db\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"14.4-5c87f8885e89afb5","identity_text":"Prevent pg_stat_get_subscription() from possibly returning an extra row containing garbage values (Kuntal Ghosh)","part":"changes","patch_ids":["e58ac21a56bb415ac5bda28ffa577be5"],"related_changes":[{"db_id":"adc075e5952807492ebed310fbea961d","evidence":{"patch_ids":["e58ac21a56bb415ac5bda28ffa577be5"],"same_day":false,"statement_hash":"c8ac2dca4ec0a441436c658d4756f19dab9db63cba92ce282c8bc6dbbd20dc7a"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"防止 pg_stat_get_subscription() 可能返回包含垃圾值的额外行","url":"/docs/compare/?release=13.8#13.8-5f2bac0ad7f1eb8f","version":"13.8"},{"db_id":"7c00cba5230e85d84e5a09d3f2a16a2e","evidence":{"patch_ids":["e58ac21a56bb415ac5bda28ffa577be5"],"same_day":false,"statement_hash":"c8ac2dca4ec0a441436c658d4756f19dab9db63cba92ce282c8bc6dbbd20dc7a"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"防止 pg_stat_get_subscription() 可能返回包含垃圾值的额外行","url":"/docs/compare/?release=12.12#12.12-eaf89439508f29ec","version":"12.12"},{"db_id":"13961e1bd87dbb0b588679dda60fb184","evidence":{"patch_ids":["e58ac21a56bb415ac5bda28ffa577be5"],"same_day":false,"statement_hash":"c8ac2dca4ec0a441436c658d4756f19dab9db63cba92ce282c8bc6dbbd20dc7a"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"防止 pg_stat_get_subscription() 可能返回包含垃圾值的额外行","url":"/docs/compare/?release=11.17#11.17-6d1f65c8a47054c7","version":"11.17"},{"db_id":"47db1e2fecdbb9f828ab575fa0c54020","evidence":{"patch_ids":["e58ac21a56bb415ac5bda28ffa577be5"],"same_day":false,"statement_hash":"c8ac2dca4ec0a441436c658d4756f19dab9db63cba92ce282c8bc6dbbd20dc7a"},"kind":"equivalent","label":"10.22","source_url":"/docs/release/10.22/#id-1.11.6.6.6","title":"防止 pg_stat_get_subscription() 可能返回包含垃圾值的额外行","url":"/docs/compare/?release=10.22#10.22-6d1f65c8a47054c7","version":"10.22"}],"relations":[{"evidence":{"patch_ids":["e58ac21a56bb415ac5bda28ffa577be5"],"same_day":false,"statement_hash":"c8ac2dca4ec0a441436c658d4756f19dab9db63cba92ce282c8bc6dbbd20dc7a"},"rule":2,"target":"13961e1bd87dbb0b588679dda60fb184","type":"equivalent"},{"evidence":{"patch_ids":["e58ac21a56bb415ac5bda28ffa577be5"],"same_day":false,"statement_hash":"c8ac2dca4ec0a441436c658d4756f19dab9db63cba92ce282c8bc6dbbd20dc7a"},"rule":2,"target":"47db1e2fecdbb9f828ab575fa0c54020","type":"equivalent"},{"evidence":{"patch_ids":["e58ac21a56bb415ac5bda28ffa577be5"],"same_day":false,"statement_hash":"c8ac2dca4ec0a441436c658d4756f19dab9db63cba92ce282c8bc6dbbd20dc7a"},"rule":2,"target":"7c00cba5230e85d84e5a09d3f2a16a2e","type":"equivalent"},{"evidence":{"patch_ids":["e58ac21a56bb415ac5bda28ffa577be5"],"same_day":false,"statement_hash":"c8ac2dca4ec0a441436c658d4756f19dab9db63cba92ce282c8bc6dbbd20dc7a"},"rule":2,"target":"adc075e5952807492ebed310fbea961d","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["5c3b5f7db"],"source_entry_id":"14.4/changes/006","source_hash":"0f0be17c9d4ab5876046b414c96bd8dfe0d78f042bf50ad5f3c4a0a3d6a6ce7b","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"c8ac2dca4ec0a441436c658d4756f19dab9db63cba92ce282c8bc6dbbd20dc7a","text":"防止 pg_stat_get_subscription() 可能返回包含垃圾值的额外行（Kuntal Ghosh）§","title":"防止 pg_stat_get_subscription() 可能返回包含垃圾值的额外行","variants":[],"version":"14.4"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["f82595ac9","fc36ac52e"],"commit_groups":[["f82595ac9","fc36ac52e"]],"commits":["f82595ac9"],"cves":[],"db_id":"146cf63bb044542906ffb41e4fdbce06","html":"\u003cp\u003e修复当数据库编码为 \u003ccode\u003eSQL_ASCII\u003c/code\u003e 而客户端编码为多字节编码时 \u003ccode\u003eCOPY FROM\u003c/code\u003e 的错误检查（Heikki Linnakangas）\u003ca href=\"https://postgr.es/c/f82595ac9\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这一错误可能导致对有效输入数据发出错误的无效编码投诉。\u003c/p\u003e","id":"14.4-8c698565d5b0c2fa","identity_text":"Fix COPY FROM's error checking in the case where the database encoding is SQL_ASCII while the client's encoding is a multi-byte encoding (Heikki Linnakangas) This mistake could lead to false complaints of invalidly-encoded input data.","part":"changes","patch_ids":["218b7fceed89818872d088cd112c98e0"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["f82595ac9"],"source_entry_id":"14.4/changes/007","source_hash":"59aedac426c145f5978de4e180209ec024da9d576b4807c876705eb1930cf199","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"3b89890114b20f9d224a06879c4687344e779243c146ea1985dd58b2eb9be4ae","text":"修复当数据库编码为 SQL_ASCII 而客户端编码为多字节编码时 COPY FROM 的错误检查（Heikki Linnakangas）§ 这一错误可能导致对有效输入数据发出错误的无效编码投诉。","title":"修复当数据库编码为 SQL_ASCII 而客户端编码为多字节编码时 COPY FROM 的错误检查","variants":[],"version":"14.4"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["0ebd20e20","0fbf01120","16cb7db34","29d111518","50bf3157a","5139db556","62221ef18","80656f00f","94edb85d2","ade17703d","ba83de8ad","e8b93c6e2"],"commit_groups":[["0ebd20e20","29d111518","50bf3157a","5139db556","62221ef18","e8b93c6e2"],["0fbf01120","16cb7db34","80656f00f","94edb85d2","ade17703d","ba83de8ad"]],"commits":["94edb85d2","e8b93c6e2"],"cves":[],"db_id":"4d5a074b371db69dfe09c7a179298842","html":"\u003cp\u003e避免在 \u003ccode\u003eXMLTABLE\u003c/code\u003e 或 \u003ccode\u003eJSON_TABLE\u003c/code\u003e 结构上附加了过多列别名时崩溃（Álvaro Herrera）\u003ca href=\"https://postgr.es/c/94edb85d2\"\u003e§\u003c/a\u003e \u003ca href=\"https://postgr.es/c/e8b93c6e2\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"14.4-346917e4213a38e1","identity_text":"Avoid crashing if too many column aliases are attached to an XMLTABLE or JSON_TABLE construct (Álvaro Herrera)","part":"changes","patch_ids":["2ac708542e6368e258ee1ef8bfca944d","44fd0c3f9c64e92e37a4866f26b2dd11"],"related_changes":[{"db_id":"d33f457fb8ef4b93dc2dab4d95d5445d","evidence":{"patch_ids":["2ac708542e6368e258ee1ef8bfca944d","44fd0c3f9c64e92e37a4866f26b2dd11"],"same_day":false,"statement_hash":"60cf2317bf09c52bd685e4c9c121b4c1daa64d3ed73ad8ed3a9eb5c85ac4ed69"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"避免在 XMLTABLE 或 JSON_TABLE 结构上附加了过多列别名时崩溃","url":"/docs/compare/?release=13.8#13.8-edfc478a291046f5","version":"13.8"},{"db_id":"efba4d4a3a277da0ffb24f2a779b5b08","evidence":{"patch_ids":["2ac708542e6368e258ee1ef8bfca944d","44fd0c3f9c64e92e37a4866f26b2dd11"],"same_day":false,"statement_hash":"60cf2317bf09c52bd685e4c9c121b4c1daa64d3ed73ad8ed3a9eb5c85ac4ed69"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"避免在 XMLTABLE 或 JSON_TABLE 结构上附加了过多列别名时崩溃","url":"/docs/compare/?release=12.12#12.12-f5822aa16dc340c9","version":"12.12"},{"db_id":"5f220cf6c0dca4f9694ee12ef7134b0e","evidence":{"patch_ids":["2ac708542e6368e258ee1ef8bfca944d","44fd0c3f9c64e92e37a4866f26b2dd11"],"same_day":false,"statement_hash":"60cf2317bf09c52bd685e4c9c121b4c1daa64d3ed73ad8ed3a9eb5c85ac4ed69"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"避免在 XMLTABLE 或 JSON_TABLE 结构上附加了过多列别名时崩溃","url":"/docs/compare/?release=11.17#11.17-873a7fa4124917b0","version":"11.17"},{"db_id":"c04873471898c42aaf3cefd843d371c1","evidence":{"patch_ids":["2ac708542e6368e258ee1ef8bfca944d","44fd0c3f9c64e92e37a4866f26b2dd11"],"same_day":false,"statement_hash":"60cf2317bf09c52bd685e4c9c121b4c1daa64d3ed73ad8ed3a9eb5c85ac4ed69"},"kind":"equivalent","label":"10.22","source_url":"/docs/release/10.22/#id-1.11.6.6.6","title":"避免在 XMLTABLE 或 JSON_TABLE 结构上附加了过多列别名时崩溃","url":"/docs/compare/?release=10.22#10.22-873a7fa4124917b0","version":"10.22"}],"relations":[{"evidence":{"patch_ids":["2ac708542e6368e258ee1ef8bfca944d","44fd0c3f9c64e92e37a4866f26b2dd11"],"same_day":false,"statement_hash":"60cf2317bf09c52bd685e4c9c121b4c1daa64d3ed73ad8ed3a9eb5c85ac4ed69"},"rule":2,"target":"5f220cf6c0dca4f9694ee12ef7134b0e","type":"equivalent"},{"evidence":{"patch_ids":["2ac708542e6368e258ee1ef8bfca944d","44fd0c3f9c64e92e37a4866f26b2dd11"],"same_day":false,"statement_hash":"60cf2317bf09c52bd685e4c9c121b4c1daa64d3ed73ad8ed3a9eb5c85ac4ed69"},"rule":2,"target":"c04873471898c42aaf3cefd843d371c1","type":"equivalent"},{"evidence":{"patch_ids":["2ac708542e6368e258ee1ef8bfca944d","44fd0c3f9c64e92e37a4866f26b2dd11"],"same_day":false,"statement_hash":"60cf2317bf09c52bd685e4c9c121b4c1daa64d3ed73ad8ed3a9eb5c85ac4ed69"},"rule":2,"target":"d33f457fb8ef4b93dc2dab4d95d5445d","type":"equivalent"},{"evidence":{"patch_ids":["2ac708542e6368e258ee1ef8bfca944d","44fd0c3f9c64e92e37a4866f26b2dd11"],"same_day":false,"statement_hash":"60cf2317bf09c52bd685e4c9c121b4c1daa64d3ed73ad8ed3a9eb5c85ac4ed69"},"rule":2,"target":"efba4d4a3a277da0ffb24f2a779b5b08","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["94edb85d2","e8b93c6e2"],"source_entry_id":"14.4/changes/008","source_hash":"887f3e47f965b9823d1f15c7e4a19fd39dc57718ac30b0577e062748fd3015a0","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"60cf2317bf09c52bd685e4c9c121b4c1daa64d3ed73ad8ed3a9eb5c85ac4ed69","text":"避免在 XMLTABLE 或 JSON_TABLE 结构上附加了过多列别名时崩溃（Álvaro Herrera）§ §","title":"避免在 XMLTABLE 或 JSON_TABLE 结构上附加了过多列别名时崩溃","variants":[],"version":"14.4"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["6f7eec119","7686403b4","bb2c04676","c7461fc25","f3b8d7244","fefd54631"],"commit_groups":[["6f7eec119","7686403b4","bb2c04676","c7461fc25","f3b8d7244","fefd54631"]],"commits":["6f7eec119"],"cves":[],"db_id":"af308fd0f2827f58ef71882b372ca7ef","html":"\u003cp\u003e在反编译视图或规则时，如果 \u003ccode\u003eSELECT\u003c/code\u003e 输出列的 \u003ccode\u003eAS \"?column?\"\u003c/code\u003e 别名子句可能在其他地方被引用，则显示它（Tom Lane）\u003ca href=\"https://postgr.es/c/6f7eec119\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e之前，这个自动生成的别名总是被隐藏的；但在某些边界情况下，这样做会导致视图或规则定义无法恢复。\u003c/p\u003e","id":"14.4-7b6276b49463a2f2","identity_text":"When decompiling a view or rule, show a SELECT output column's AS \"?column?\" alias clause if it could be referenced elsewhere (Tom Lane) Previously, this auto-generated alias was always hidden; but there are corner cases where doing so results in a non-restorable view or rule definition.","part":"changes","patch_ids":["1330204c6ba1f59852f0fe7be53a07c9"],"related_changes":[{"db_id":"313e40dc9d395a6dbf2528f584379a47","evidence":{"patch_ids":["1330204c6ba1f59852f0fe7be53a07c9"],"same_day":false,"statement_hash":"698afc18b0e28e6841ddb506f80ea53d77327f2a19c53ccfa4455ff6a7131218"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"在反编译视图或规则时，如果 SELECT 输出列的 AS \"?column?\" 别名子句可能在其他地方被引用，则显示它","url":"/docs/compare/?release=13.8#13.8-591b12862d3feb2f","version":"13.8"},{"db_id":"dd2ef8e063083bac893b2d5f38044e18","evidence":{"patch_ids":["1330204c6ba1f59852f0fe7be53a07c9"],"same_day":false,"statement_hash":"698afc18b0e28e6841ddb506f80ea53d77327f2a19c53ccfa4455ff6a7131218"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"在反编译视图或规则时，如果 SELECT 输出列的 AS \"?column?\" 别名子句可能在其他地方被引用，则显示它","url":"/docs/compare/?release=12.12#12.12-909f700f4b83a01d","version":"12.12"},{"db_id":"a731a211dd4dbfbec7e91c436caa320b","evidence":{"patch_ids":["1330204c6ba1f59852f0fe7be53a07c9"],"same_day":false,"statement_hash":"698afc18b0e28e6841ddb506f80ea53d77327f2a19c53ccfa4455ff6a7131218"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"在反编译视图或规则时，如果 SELECT 输出列的 AS \"?column?\" 别名子句可能在其他地方被引用，则显示它","url":"/docs/compare/?release=11.17#11.17-ddfdd7f7ec552d81","version":"11.17"},{"db_id":"5fa002a97fa01b1f94b24f6eb31db8a6","evidence":{"patch_ids":["1330204c6ba1f59852f0fe7be53a07c9"],"same_day":false,"statement_hash":"698afc18b0e28e6841ddb506f80ea53d77327f2a19c53ccfa4455ff6a7131218"},"kind":"equivalent","label":"10.22","source_url":"/docs/release/10.22/#id-1.11.6.6.6","title":"在反编译视图或规则时，如果 SELECT 输出列的 AS \"?column?\" 别名子句可能在其他地方被引用，则显示它","url":"/docs/compare/?release=10.22#10.22-ddfdd7f7ec552d81","version":"10.22"}],"relations":[{"evidence":{"patch_ids":["1330204c6ba1f59852f0fe7be53a07c9"],"same_day":false,"statement_hash":"698afc18b0e28e6841ddb506f80ea53d77327f2a19c53ccfa4455ff6a7131218"},"rule":2,"target":"313e40dc9d395a6dbf2528f584379a47","type":"equivalent"},{"evidence":{"patch_ids":["1330204c6ba1f59852f0fe7be53a07c9"],"same_day":false,"statement_hash":"698afc18b0e28e6841ddb506f80ea53d77327f2a19c53ccfa4455ff6a7131218"},"rule":2,"target":"5fa002a97fa01b1f94b24f6eb31db8a6","type":"equivalent"},{"evidence":{"patch_ids":["1330204c6ba1f59852f0fe7be53a07c9"],"same_day":false,"statement_hash":"698afc18b0e28e6841ddb506f80ea53d77327f2a19c53ccfa4455ff6a7131218"},"rule":2,"target":"a731a211dd4dbfbec7e91c436caa320b","type":"equivalent"},{"evidence":{"patch_ids":["1330204c6ba1f59852f0fe7be53a07c9"],"same_day":false,"statement_hash":"698afc18b0e28e6841ddb506f80ea53d77327f2a19c53ccfa4455ff6a7131218"},"rule":2,"target":"dd2ef8e063083bac893b2d5f38044e18","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["6f7eec119"],"source_entry_id":"14.4/changes/009","source_hash":"a7bccb25ba13eef6927dff4687a5a798a4120629db3123f06138b14b7bb0d8b9","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"698afc18b0e28e6841ddb506f80ea53d77327f2a19c53ccfa4455ff6a7131218","text":"在反编译视图或规则时，如果 SELECT 输出列的 AS \"?column?\" 别名子句可能在其他地方被引用，则显示它（Tom Lane）§ 之前，这个自动生成的别名总是被隐藏的；但在某些边界情况下，这样做会导致视图或规则定义无法恢复。","title":"在反编译视图或规则时，如果 SELECT 输出列的 AS \"?column?\" 别名子句可能在其他地方被引用，则显示它","variants":[],"version":"14.4"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["3753a169e","4492e73a6","58b088a9b","602986191","6c6ea6ea8","70f70d7d3","8c47622bb"],"commit_groups":[["3753a169e","4492e73a6","58b088a9b","602986191","6c6ea6ea8","70f70d7d3"],["8c47622bb"]],"commits":["58b088a9b"],"cves":[],"db_id":"a1d71cc4675ee08f791262f34e2e2451","html":"\u003cp\u003e向事件触发器报告隐式创建的操作符族（Masahiko Sawada）\u003ca href=\"https://postgr.es/c/58b088a9b\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e如果 \u003ccode\u003eCREATE OPERATOR CLASS\u003c/code\u003e 导致隐式创建了一个操作符族，该对象不会被报告给应当捕获此类事件的事件触发器。\u003c/p\u003e","id":"14.4-31e77f02a0e7ba60","identity_text":"Report implicitly-created operator families to event triggers (Masahiko Sawada) If CREATE OPERATOR CLASS results in the implicit creation of an operator family, that object was not reported to event triggers that should capture such events.","part":"changes","patch_ids":["2717938e6d6fe60de2ee5994194e0458","3d58b6474ece3ddc52926cfd9a5b773c"],"related_changes":[{"db_id":"86b4c8fa3b0570ecc99ae9e64dcc575e","evidence":{"patch_ids":["2717938e6d6fe60de2ee5994194e0458","3d58b6474ece3ddc52926cfd9a5b773c"],"same_day":false,"statement_hash":"7da9c81bf12ed53f61ed3a0723f31f3eef01eadbd463e36910c444b713d2746f"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"向事件触发器报告隐式创建的操作符族","url":"/docs/compare/?release=13.8#13.8-2f2d7a63f5f28497","version":"13.8"},{"db_id":"e11e5b616cec639c8c1fe7eba0182f7c","evidence":{"patch_ids":["2717938e6d6fe60de2ee5994194e0458","3d58b6474ece3ddc52926cfd9a5b773c"],"same_day":false,"statement_hash":"7da9c81bf12ed53f61ed3a0723f31f3eef01eadbd463e36910c444b713d2746f"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"向事件触发器报告隐式创建的操作符族","url":"/docs/compare/?release=12.12#12.12-1993477aa68aad89","version":"12.12"},{"db_id":"244cc3a1a6c6ca75296e8aa7208e62b8","evidence":{"patch_ids":["2717938e6d6fe60de2ee5994194e0458","3d58b6474ece3ddc52926cfd9a5b773c"],"same_day":false,"statement_hash":"7da9c81bf12ed53f61ed3a0723f31f3eef01eadbd463e36910c444b713d2746f"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"向事件触发器报告隐式创建的操作符族","url":"/docs/compare/?release=11.17#11.17-a744e931b667137e","version":"11.17"},{"db_id":"e31c503f99be7439dbfc4f021f076a6c","evidence":{"patch_ids":["2717938e6d6fe60de2ee5994194e0458","3d58b6474ece3ddc52926cfd9a5b773c"],"same_day":false,"statement_hash":"7da9c81bf12ed53f61ed3a0723f31f3eef01eadbd463e36910c444b713d2746f"},"kind":"equivalent","label":"10.22","source_url":"/docs/release/10.22/#id-1.11.6.6.6","title":"向事件触发器报告隐式创建的操作符族","url":"/docs/compare/?release=10.22#10.22-a744e931b667137e","version":"10.22"}],"relations":[{"evidence":{"patch_ids":["2717938e6d6fe60de2ee5994194e0458","3d58b6474ece3ddc52926cfd9a5b773c"],"same_day":false,"statement_hash":"7da9c81bf12ed53f61ed3a0723f31f3eef01eadbd463e36910c444b713d2746f"},"rule":2,"target":"244cc3a1a6c6ca75296e8aa7208e62b8","type":"equivalent"},{"evidence":{"patch_ids":["2717938e6d6fe60de2ee5994194e0458","3d58b6474ece3ddc52926cfd9a5b773c"],"same_day":false,"statement_hash":"7da9c81bf12ed53f61ed3a0723f31f3eef01eadbd463e36910c444b713d2746f"},"rule":2,"target":"86b4c8fa3b0570ecc99ae9e64dcc575e","type":"equivalent"},{"evidence":{"patch_ids":["2717938e6d6fe60de2ee5994194e0458","3d58b6474ece3ddc52926cfd9a5b773c"],"same_day":false,"statement_hash":"7da9c81bf12ed53f61ed3a0723f31f3eef01eadbd463e36910c444b713d2746f"},"rule":2,"target":"e11e5b616cec639c8c1fe7eba0182f7c","type":"equivalent"},{"evidence":{"patch_ids":["2717938e6d6fe60de2ee5994194e0458","3d58b6474ece3ddc52926cfd9a5b773c"],"same_day":false,"statement_hash":"7da9c81bf12ed53f61ed3a0723f31f3eef01eadbd463e36910c444b713d2746f"},"rule":2,"target":"e31c503f99be7439dbfc4f021f076a6c","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["58b088a9b","8c47622bb"],"source_entry_id":"14.4/changes/010","source_hash":"6259e981e4e04f3c28fd972b722a27f8ffdb11e2543a30e4ca9fe806e073bc63","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"7da9c81bf12ed53f61ed3a0723f31f3eef01eadbd463e36910c444b713d2746f","text":"向事件触发器报告隐式创建的操作符族（Masahiko Sawada）§ 如果 CREATE OPERATOR CLASS 导致隐式创建了一个操作符族，该对象不会被报告给应当捕获此类事件的事件触发器。","title":"向事件触发器报告隐式创建的操作符族","variants":[],"version":"14.4"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["2e9559b30","4525151d4","60e956eb8","6dced63b4","7e59b1219"],"commit_groups":[["2e9559b30","4525151d4","60e956eb8","6dced63b4","7e59b1219"]],"commits":["6dced63b4"],"cves":[],"db_id":"47af627fcd6b43b17a606802a2d03900","html":"\u003cp\u003e修复在备库提升期间有重启点正在运行时的控制文件更新（Kyotaro Horiguchi）\u003ca href=\"https://postgr.es/c/6dced63b4\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e之前，当重启点完成时，它可能会错误地更新控制文件中的最后检查点字段，如果服务器在下一次正常检查点完成之前崩溃，可能导致 PANIC 和重启失败。\u003c/p\u003e","id":"14.4-2545ec133605503f","identity_text":"Fix control file updates made when a restartpoint is running during promotion of a standby server (Kyotaro Horiguchi) Previously, when the restartpoint completed it could incorrectly update the last-checkpoint fields of the control file, potentially leading to PANIC and failure to restart if the server crashes before the next normal checkpoint completes.","part":"changes","patch_ids":["15e7a9569ab88f0979df49c823ee4496"],"related_changes":[{"db_id":"6970a8cf5cd0499de93d3c894c47ec70","evidence":{"patch_ids":["15e7a9569ab88f0979df49c823ee4496"],"same_day":false,"statement_hash":"8f92c46925e34c83015ec4c77b2411f7c9193b725a4f89c39940a157d63a54d2"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"修复在备库提升期间有重启点正在运行时的控制文件更新","url":"/docs/compare/?release=13.8#13.8-7e3a060c80ffe05c","version":"13.8"},{"db_id":"29658bdf45a44c7a8384338f4c04a789","evidence":{"patch_ids":["15e7a9569ab88f0979df49c823ee4496"],"same_day":false,"statement_hash":"8f92c46925e34c83015ec4c77b2411f7c9193b725a4f89c39940a157d63a54d2"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"修复在备库提升期间有重启点正在运行时的控制文件更新","url":"/docs/compare/?release=12.12#12.12-6977f097afc70d21","version":"12.12"},{"db_id":"8db46d882c5d61b149607c464f64490b","evidence":{"patch_ids":["15e7a9569ab88f0979df49c823ee4496"],"same_day":false,"statement_hash":"8f92c46925e34c83015ec4c77b2411f7c9193b725a4f89c39940a157d63a54d2"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"修复在备库提升期间有重启点正在运行时的控制文件更新","url":"/docs/compare/?release=11.17#11.17-8b70f9a872430145","version":"11.17"},{"db_id":"a363c71cf596a090f1c6be889f284e5a","evidence":{"patch_ids":["15e7a9569ab88f0979df49c823ee4496"],"same_day":false,"statement_hash":"8f92c46925e34c83015ec4c77b2411f7c9193b725a4f89c39940a157d63a54d2"},"kind":"equivalent","label":"10.22","source_url":"/docs/release/10.22/#id-1.11.6.6.6","title":"修复在备库提升期间有重启点正在运行时的控制文件更新","url":"/docs/compare/?release=10.22#10.22-8b70f9a872430145","version":"10.22"}],"relations":[{"evidence":{"patch_ids":["15e7a9569ab88f0979df49c823ee4496"],"same_day":false,"statement_hash":"8f92c46925e34c83015ec4c77b2411f7c9193b725a4f89c39940a157d63a54d2"},"rule":2,"target":"29658bdf45a44c7a8384338f4c04a789","type":"equivalent"},{"evidence":{"patch_ids":["15e7a9569ab88f0979df49c823ee4496"],"same_day":false,"statement_hash":"8f92c46925e34c83015ec4c77b2411f7c9193b725a4f89c39940a157d63a54d2"},"rule":2,"target":"6970a8cf5cd0499de93d3c894c47ec70","type":"equivalent"},{"evidence":{"patch_ids":["15e7a9569ab88f0979df49c823ee4496"],"same_day":false,"statement_hash":"8f92c46925e34c83015ec4c77b2411f7c9193b725a4f89c39940a157d63a54d2"},"rule":2,"target":"8db46d882c5d61b149607c464f64490b","type":"equivalent"},{"evidence":{"patch_ids":["15e7a9569ab88f0979df49c823ee4496"],"same_day":false,"statement_hash":"8f92c46925e34c83015ec4c77b2411f7c9193b725a4f89c39940a157d63a54d2"},"rule":2,"target":"a363c71cf596a090f1c6be889f284e5a","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["6dced63b4"],"source_entry_id":"14.4/changes/011","source_hash":"d196f48ae77d77eccfece7a2f418e7c2241fc07bc7d2d0690bceab2d920d52a6","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"8f92c46925e34c83015ec4c77b2411f7c9193b725a4f89c39940a157d63a54d2","text":"修复在备库提升期间有重启点正在运行时的控制文件更新（Kyotaro Horiguchi）§ 之前，当重启点完成时，它可能会错误地更新控制文件中的最后检查点字段，如果服务器在下一次正常检查点完成之前崩溃，可能导致 PANIC 和重启失败。","title":"修复在备库提升期间有重启点正在运行时的控制文件更新","variants":[],"version":"14.4"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["55558df23","87c1dd246","a4015ec03","d6da71fa8","f832b5007","f95d53ede"],"commit_groups":[["55558df23","87c1dd246","a4015ec03","d6da71fa8","f832b5007","f95d53ede"]],"commits":["d6da71fa8"],"cves":[],"db_id":"42acb28481bd6af31cd3abb574751c5a","html":"\u003cp\u003e防止在逻辑复制大事务期间触发备库的 \u003ccode\u003ewal_receiver_timeout\u003c/code\u003e（Wang Wei，Amit Kapila）\u003ca href=\"https://postgr.es/c/d6da71fa8\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e如果主库上的一个大事务没有向备库发送数据（可能是因为它修改的表都没有被发布），备库可能会超时。通过确保在这种情况下定期发送保活消息来修复此问题。\u003c/p\u003e","id":"14.4-29f8835cbd99b475","identity_text":"Prevent triggering of standby's wal_receiver_timeout during logical replication of large transactions (Wang Wei, Amit Kapila) If a large transaction on the primary server sends no data to the standby (perhaps because no table it changes is published), it was possible for the standby to timeout. Fix that by ensuring we send keepalive messages periodically in such situations.","part":"changes","patch_ids":["1530f34ec3d691ea5f0eba6d7f9745c3"],"related_changes":[{"db_id":"cae95cd54c53ad287f2bb5a5f356bdd0","evidence":{"patch_ids":["1530f34ec3d691ea5f0eba6d7f9745c3"],"same_day":false,"statement_hash":"1ad1be7c02ac4530f5478b1ded4c37634a417269bf0902f1753841c0bfe4074b"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"防止在逻辑复制大事务期间触发备库的 wal_receiver_timeout","url":"/docs/compare/?release=13.8#13.8-5bed5c6f59c21a5c","version":"13.8"},{"db_id":"e32cbd7f4170feb0afdf981793dfbf64","evidence":{"patch_ids":["1530f34ec3d691ea5f0eba6d7f9745c3"],"same_day":false,"statement_hash":"1ad1be7c02ac4530f5478b1ded4c37634a417269bf0902f1753841c0bfe4074b"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"防止在逻辑复制大事务期间触发备库的 wal_receiver_timeout","url":"/docs/compare/?release=12.12#12.12-070db65928599a8d","version":"12.12"},{"db_id":"417ccfe7dbce14777e9a783cedac8ada","evidence":{"patch_ids":["1530f34ec3d691ea5f0eba6d7f9745c3"],"same_day":false,"statement_hash":"1ad1be7c02ac4530f5478b1ded4c37634a417269bf0902f1753841c0bfe4074b"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"防止在逻辑复制大事务期间触发备库的 wal_receiver_timeout","url":"/docs/compare/?release=11.17#11.17-24f34859df6a5c60","version":"11.17"},{"db_id":"16e9b2df9d407d45a26371aa78b3ac1b","evidence":{"patch_ids":["1530f34ec3d691ea5f0eba6d7f9745c3"],"same_day":false,"statement_hash":"1ad1be7c02ac4530f5478b1ded4c37634a417269bf0902f1753841c0bfe4074b"},"kind":"equivalent","label":"10.22","source_url":"/docs/release/10.22/#id-1.11.6.6.6","title":"防止在逻辑复制大事务期间触发备库的 wal_receiver_timeout","url":"/docs/compare/?release=10.22#10.22-24f34859df6a5c60","version":"10.22"}],"relations":[{"evidence":{"patch_ids":["1530f34ec3d691ea5f0eba6d7f9745c3"],"same_day":false,"statement_hash":"1ad1be7c02ac4530f5478b1ded4c37634a417269bf0902f1753841c0bfe4074b"},"rule":2,"target":"16e9b2df9d407d45a26371aa78b3ac1b","type":"equivalent"},{"evidence":{"patch_ids":["1530f34ec3d691ea5f0eba6d7f9745c3"],"same_day":false,"statement_hash":"1ad1be7c02ac4530f5478b1ded4c37634a417269bf0902f1753841c0bfe4074b"},"rule":2,"target":"417ccfe7dbce14777e9a783cedac8ada","type":"equivalent"},{"evidence":{"patch_ids":["1530f34ec3d691ea5f0eba6d7f9745c3"],"same_day":false,"statement_hash":"1ad1be7c02ac4530f5478b1ded4c37634a417269bf0902f1753841c0bfe4074b"},"rule":2,"target":"cae95cd54c53ad287f2bb5a5f356bdd0","type":"equivalent"},{"evidence":{"patch_ids":["1530f34ec3d691ea5f0eba6d7f9745c3"],"same_day":false,"statement_hash":"1ad1be7c02ac4530f5478b1ded4c37634a417269bf0902f1753841c0bfe4074b"},"rule":2,"target":"e32cbd7f4170feb0afdf981793dfbf64","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["d6da71fa8"],"source_entry_id":"14.4/changes/012","source_hash":"97bdbc38b6faeda1bb130adc498334a25c50a307f41afbef190e400c7914f4d5","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"1ad1be7c02ac4530f5478b1ded4c37634a417269bf0902f1753841c0bfe4074b","text":"防止在逻辑复制大事务期间触发备库的 wal_receiver_timeout（Wang Wei，Amit Kapila）§ 如果主库上的一个大事务没有向备库发送数据（可能是因为它修改的表都没有被发布），备库可能会超时。通过确保在这种情况下定期发送保活消息来修复此问题。","title":"防止在逻辑复制大事务期间触发备库的 wal_receiver_timeout","variants":[],"version":"14.4"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["16c80e7d0","2114910ca","a3faebd6a","ae758e603","c47a55852","c73748b68"],"commit_groups":[["16c80e7d0","2114910ca","a3faebd6a","ae758e603","c47a55852","c73748b68"]],"commits":["c47a55852"],"cves":[],"db_id":"07fe7bdcc314b8b8e7591f75c3ce07cc","html":"\u003cp\u003e防止在读取无效时区缩写文件时发生打开文件泄漏（Kyotaro Horiguchi）\u003ca href=\"https://postgr.es/c/c47a55852\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e这种情况可能导致无害的警告消息。\u003c/p\u003e","id":"14.4-96fb7c4d60448fe6","identity_text":"Prevent open-file leak when reading an invalid timezone abbreviation file (Kyotaro Horiguchi) Such cases could result in harmless warning messages.","part":"changes","patch_ids":["57dfc389692272f52882320d3c9d4b97"],"related_changes":[{"db_id":"df4c23579a74f79ac4c7191ad0cfbae9","evidence":{"patch_ids":["57dfc389692272f52882320d3c9d4b97"],"same_day":false,"statement_hash":"8acbf40b5c103e45ccc79db3b1cec33fd7db4ecacae9bb90726dba78e007aa9c"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"防止在读取无效时区缩写文件时发生打开文件泄漏","url":"/docs/compare/?release=13.8#13.8-a253150b44167651","version":"13.8"},{"db_id":"b7388343276b32b204401ea9ae9de70d","evidence":{"patch_ids":["57dfc389692272f52882320d3c9d4b97"],"same_day":false,"statement_hash":"8acbf40b5c103e45ccc79db3b1cec33fd7db4ecacae9bb90726dba78e007aa9c"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"防止在读取无效时区缩写文件时发生打开文件泄漏","url":"/docs/compare/?release=12.12#12.12-24c0b218ae896606","version":"12.12"},{"db_id":"6dc1762a69b1b8e6998d39ff7acd3719","evidence":{"patch_ids":["57dfc389692272f52882320d3c9d4b97"],"same_day":false,"statement_hash":"8acbf40b5c103e45ccc79db3b1cec33fd7db4ecacae9bb90726dba78e007aa9c"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"防止在读取无效时区缩写文件时发生打开文件泄漏","url":"/docs/compare/?release=11.17#11.17-3e4d8caec3834ae0","version":"11.17"},{"db_id":"4a5d6351b37425bd4223c246effcb4d7","evidence":{"patch_ids":["57dfc389692272f52882320d3c9d4b97"],"same_day":false,"statement_hash":"8acbf40b5c103e45ccc79db3b1cec33fd7db4ecacae9bb90726dba78e007aa9c"},"kind":"equivalent","label":"10.22","source_url":"/docs/release/10.22/#id-1.11.6.6.6","title":"防止在读取无效时区缩写文件时发生打开文件泄漏","url":"/docs/compare/?release=10.22#10.22-3e4d8caec3834ae0","version":"10.22"}],"relations":[{"evidence":{"patch_ids":["57dfc389692272f52882320d3c9d4b97"],"same_day":false,"statement_hash":"8acbf40b5c103e45ccc79db3b1cec33fd7db4ecacae9bb90726dba78e007aa9c"},"rule":2,"target":"4a5d6351b37425bd4223c246effcb4d7","type":"equivalent"},{"evidence":{"patch_ids":["57dfc389692272f52882320d3c9d4b97"],"same_day":false,"statement_hash":"8acbf40b5c103e45ccc79db3b1cec33fd7db4ecacae9bb90726dba78e007aa9c"},"rule":2,"target":"6dc1762a69b1b8e6998d39ff7acd3719","type":"equivalent"},{"evidence":{"patch_ids":["57dfc389692272f52882320d3c9d4b97"],"same_day":false,"statement_hash":"8acbf40b5c103e45ccc79db3b1cec33fd7db4ecacae9bb90726dba78e007aa9c"},"rule":2,"target":"b7388343276b32b204401ea9ae9de70d","type":"equivalent"},{"evidence":{"patch_ids":["57dfc389692272f52882320d3c9d4b97"],"same_day":false,"statement_hash":"8acbf40b5c103e45ccc79db3b1cec33fd7db4ecacae9bb90726dba78e007aa9c"},"rule":2,"target":"df4c23579a74f79ac4c7191ad0cfbae9","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["c47a55852"],"source_entry_id":"14.4/changes/013","source_hash":"252308a9e6986d10be7550a13891da6c115e8ce9899448478a4e127464731e8b","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"8acbf40b5c103e45ccc79db3b1cec33fd7db4ecacae9bb90726dba78e007aa9c","text":"防止在读取无效时区缩写文件时发生打开文件泄漏（Kyotaro Horiguchi）§ 这种情况可能导致无害的警告消息。","title":"防止在读取无效时区缩写文件时发生打开文件泄漏","variants":[],"version":"14.4"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["1b40ceea2","1e6802990","ae236bf66","c3db8a2e2","f1431f3bf","fe441a031"],"commit_groups":[["1b40ceea2","1e6802990","ae236bf66","c3db8a2e2","f1431f3bf","fe441a031"]],"commits":["fe441a031"],"cves":[],"db_id":"15787b38474cabde4ed787ee0ea849e4","html":"\u003cp\u003e允许自定义服务器参数具有为 NULL 的简短描述（Steve Chavez）\u003ca href=\"https://postgr.es/c/fe441a031\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e之前，虽然扩展可以选择创建这样的设置，但某些代码路径在处理它们时会崩溃。\u003c/p\u003e","id":"14.4-8b84ff7b68f6eea0","identity_text":"Allow custom server parameters to have short descriptions that are NULL (Steve Chavez) Previously, although extensions could choose to create such settings, some code paths would crash while processing them.","part":"changes","patch_ids":["6f26a07a5ff6fe0e3ef6fd8d4dc369e5"],"related_changes":[{"db_id":"b8560733dbf9efd6e6cc1b34c6135d92","evidence":{"patch_ids":["6f26a07a5ff6fe0e3ef6fd8d4dc369e5"],"same_day":false,"statement_hash":"3abd4e5d08992e04bc25a61695c3927530baa406649e9a4b5f10ba890db2d2fc"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"允许自定义服务器参数具有为 NULL 的简短描述","url":"/docs/compare/?release=13.8#13.8-e9902cfd52652d6c","version":"13.8"},{"db_id":"9e01c5e70ead8eb482ef06763d8ff745","evidence":{"patch_ids":["6f26a07a5ff6fe0e3ef6fd8d4dc369e5"],"same_day":false,"statement_hash":"3abd4e5d08992e04bc25a61695c3927530baa406649e9a4b5f10ba890db2d2fc"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"允许自定义服务器参数具有为 NULL 的简短描述","url":"/docs/compare/?release=12.12#12.12-d713a6e5e495d81e","version":"12.12"},{"db_id":"85ebfd35c671e894717fdd49e5994567","evidence":{"patch_ids":["6f26a07a5ff6fe0e3ef6fd8d4dc369e5"],"same_day":false,"statement_hash":"3abd4e5d08992e04bc25a61695c3927530baa406649e9a4b5f10ba890db2d2fc"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"允许自定义服务器参数具有为 NULL 的简短描述","url":"/docs/compare/?release=11.17#11.17-351b14796093201c","version":"11.17"},{"db_id":"83a9a8613f0fb6f9c9bec05ab27e6874","evidence":{"patch_ids":["6f26a07a5ff6fe0e3ef6fd8d4dc369e5"],"same_day":false,"statement_hash":"3abd4e5d08992e04bc25a61695c3927530baa406649e9a4b5f10ba890db2d2fc"},"kind":"equivalent","label":"10.22","source_url":"/docs/release/10.22/#id-1.11.6.6.6","title":"允许自定义服务器参数具有为 NULL 的简短描述","url":"/docs/compare/?release=10.22#10.22-351b14796093201c","version":"10.22"}],"relations":[{"evidence":{"patch_ids":["6f26a07a5ff6fe0e3ef6fd8d4dc369e5"],"same_day":false,"statement_hash":"3abd4e5d08992e04bc25a61695c3927530baa406649e9a4b5f10ba890db2d2fc"},"rule":2,"target":"83a9a8613f0fb6f9c9bec05ab27e6874","type":"equivalent"},{"evidence":{"patch_ids":["6f26a07a5ff6fe0e3ef6fd8d4dc369e5"],"same_day":false,"statement_hash":"3abd4e5d08992e04bc25a61695c3927530baa406649e9a4b5f10ba890db2d2fc"},"rule":2,"target":"85ebfd35c671e894717fdd49e5994567","type":"equivalent"},{"evidence":{"patch_ids":["6f26a07a5ff6fe0e3ef6fd8d4dc369e5"],"same_day":false,"statement_hash":"3abd4e5d08992e04bc25a61695c3927530baa406649e9a4b5f10ba890db2d2fc"},"rule":2,"target":"9e01c5e70ead8eb482ef06763d8ff745","type":"equivalent"},{"evidence":{"patch_ids":["6f26a07a5ff6fe0e3ef6fd8d4dc369e5"],"same_day":false,"statement_hash":"3abd4e5d08992e04bc25a61695c3927530baa406649e9a4b5f10ba890db2d2fc"},"rule":2,"target":"b8560733dbf9efd6e6cc1b34c6135d92","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["fe441a031"],"source_entry_id":"14.4/changes/014","source_hash":"1d4f1253fbd89327e6108ceea5ce046cbd7b826d77dec00f7c62f0cc5c4da43d","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"3abd4e5d08992e04bc25a61695c3927530baa406649e9a4b5f10ba890db2d2fc","text":"允许自定义服务器参数具有为 NULL 的简短描述（Steve Chavez）§ 之前，虽然扩展可以选择创建这样的设置，但某些代码路径在处理它们时会崩溃。","title":"允许自定义服务器参数具有为 NULL 的简短描述","variants":[],"version":"14.4"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["01ab9fb7d","2b65de7fc","9e3dbc6fd","a44bc8b8f","b4be4a082","ef54a6576"],"commit_groups":[["01ab9fb7d","2b65de7fc","9e3dbc6fd","a44bc8b8f","b4be4a082","ef54a6576"]],"commits":["b4be4a082"],"cves":[],"db_id":"87ec4dfcaa656b77e208e62fae117396","html":"\u003cp\u003e移除 \u003cspan\u003elibpq\u003c/span\u003e 中不恰当的 SSL 密钥文件所有权检查（Tom Lane）\u003ca href=\"https://postgr.es/c/b4be4a082\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e在之前的小版本中，我们将服务器对 SSL 私钥文件的权限检查规则复制到了 libpq 中。但我们不应该同时复制服务器的文件所有权检查。虽然在正常使用场景下这没有问题，但对于以 root 身份运行的客户端可能会导致意外的失败，在其他情况下也可能如此。\u003c/p\u003e","id":"14.4-5b6e2d7df84f87be","identity_text":"Remove misguided SSL key file ownership check in libpq (Tom Lane) In the previous minor releases, we copied the server's permission checking rules for SSL private key files into libpq. But we should not have also copied the server's file-ownership check. While that works in normal use-cases, it can result in an unexpected failure for clients running as root, and perhaps in other cases.","part":"changes","patch_ids":["d8dd8878b155405be50eb1d29fe2e356"],"related_changes":[{"db_id":"c32010b470a422cb9cab4ab6ba21e2e3","evidence":{"patch_ids":["d8dd8878b155405be50eb1d29fe2e356"],"same_day":false,"statement_hash":"e3197a87e285933376cb8fce81898e45702089915329ddeeb22e41d441233a23"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"移除 libpq 中不恰当的 SSL 密钥文件所有权检查","url":"/docs/compare/?release=13.8#13.8-a41827c9671df1a0","version":"13.8"},{"db_id":"808ddcf7300d73cfc75141bd60205968","evidence":{"patch_ids":["d8dd8878b155405be50eb1d29fe2e356"],"same_day":false,"statement_hash":"e3197a87e285933376cb8fce81898e45702089915329ddeeb22e41d441233a23"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"移除 libpq 中不恰当的 SSL 密钥文件所有权检查","url":"/docs/compare/?release=12.12#12.12-e39963543620ce56","version":"12.12"},{"db_id":"e0fda3fa1fd5bd65ff3880d496bda2dd","evidence":{"patch_ids":["d8dd8878b155405be50eb1d29fe2e356"],"same_day":false,"statement_hash":"e3197a87e285933376cb8fce81898e45702089915329ddeeb22e41d441233a23"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"移除 libpq 中不恰当的 SSL 密钥文件所有权检查","url":"/docs/compare/?release=11.17#11.17-1000bd0b722464b9","version":"11.17"},{"db_id":"6dca87110e704a26bb818967b4bcc868","evidence":{"patch_ids":["d8dd8878b155405be50eb1d29fe2e356"],"same_day":false,"statement_hash":"e3197a87e285933376cb8fce81898e45702089915329ddeeb22e41d441233a23"},"kind":"equivalent","label":"10.22","source_url":"/docs/release/10.22/#id-1.11.6.6.6","title":"移除 libpq 中不恰当的 SSL 密钥文件所有权检查","url":"/docs/compare/?release=10.22#10.22-1000bd0b722464b9","version":"10.22"}],"relations":[{"evidence":{"patch_ids":["d8dd8878b155405be50eb1d29fe2e356"],"same_day":false,"statement_hash":"e3197a87e285933376cb8fce81898e45702089915329ddeeb22e41d441233a23"},"rule":2,"target":"6dca87110e704a26bb818967b4bcc868","type":"equivalent"},{"evidence":{"patch_ids":["d8dd8878b155405be50eb1d29fe2e356"],"same_day":false,"statement_hash":"e3197a87e285933376cb8fce81898e45702089915329ddeeb22e41d441233a23"},"rule":2,"target":"808ddcf7300d73cfc75141bd60205968","type":"equivalent"},{"evidence":{"patch_ids":["d8dd8878b155405be50eb1d29fe2e356"],"same_day":false,"statement_hash":"e3197a87e285933376cb8fce81898e45702089915329ddeeb22e41d441233a23"},"rule":2,"target":"c32010b470a422cb9cab4ab6ba21e2e3","type":"equivalent"},{"evidence":{"patch_ids":["d8dd8878b155405be50eb1d29fe2e356"],"same_day":false,"statement_hash":"e3197a87e285933376cb8fce81898e45702089915329ddeeb22e41d441233a23"},"rule":2,"target":"e0fda3fa1fd5bd65ff3880d496bda2dd","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["b4be4a082"],"source_entry_id":"14.4/changes/015","source_hash":"47015e4a05eacb2e92afc8a61489c7b84a9b25c6748a455f64485cfc7b7cae94","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"e3197a87e285933376cb8fce81898e45702089915329ddeeb22e41d441233a23","text":"移除 libpq 中不恰当的 SSL 密钥文件所有权检查（Tom Lane）§ 在之前的小版本中，我们将服务器对 SSL 私钥文件的权限检查规则复制到了 libpq 中。但我们不应该同时复制服务器的文件所有权检查。虽然在正常使用场景下这没有问题，但对于以 root 身份运行的客户端可能会导致意外的失败，在其他情况下也可能如此。","title":"移除 libpq 中不恰当的 SSL 密钥文件所有权检查","variants":[],"version":"14.4"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["02026cadb","16d68007c","6d157e7cb","89254606b","a5dbca460","d82ed5b2f"],"commit_groups":[["02026cadb","16d68007c","6d157e7cb","89254606b","a5dbca460","d82ed5b2f"]],"commits":["a5dbca460"],"cves":[],"db_id":"7f35c3853013434255cd2f579c928965","html":"\u003cp\u003e确保 \u003cspan\u003eecpg\u003c/span\u003e 合理地报告服务器连接丢失（Tom Lane）\u003ca href=\"https://postgr.es/c/a5dbca460\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e对 libpq 生成的错误结果（例如连接丢失报告）的错误处理，会导致打印 \u003cspan\u003e“\u003cspan\u003e(null)\u003c/span\u003e”\u003c/span\u003e 而非有用的错误消息；在更早的版本中则会导致崩溃。\u003c/p\u003e","id":"14.4-7581c8cc53ace1e3","identity_text":"Ensure ecpg reports server connection loss sanely (Tom Lane) Misprocessing of a libpq-generated error result, such as a report of lost connection, would lead to printing (null) instead of a useful error message; or in older releases it would lead to a crash.","part":"changes","patch_ids":["0dc2b7824381eab04941b47efcdc409f"],"related_changes":[{"db_id":"d1e3be98acf75dfcc864e82ac2600966","evidence":{"patch_ids":["0dc2b7824381eab04941b47efcdc409f"],"same_day":false,"statement_hash":"c0763bbed91862aacac198cb8923b83f789153dcaf96668d2229bcbaa849f038"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"确保 ecpg 合理地报告服务器连接丢失","url":"/docs/compare/?release=13.8#13.8-fa3bfe6b812ffde2","version":"13.8"},{"db_id":"9a2d1904fd7c6edbed2eaa066e2fb9af","evidence":{"patch_ids":["0dc2b7824381eab04941b47efcdc409f"],"same_day":false,"statement_hash":"c0763bbed91862aacac198cb8923b83f789153dcaf96668d2229bcbaa849f038"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"确保 ecpg 合理地报告服务器连接丢失","url":"/docs/compare/?release=12.12#12.12-f9009fa3cb561e5a","version":"12.12"},{"db_id":"d49bae63b2f43da94a73cff71067eb58","evidence":{"patch_ids":["0dc2b7824381eab04941b47efcdc409f"],"same_day":false,"statement_hash":"c0763bbed91862aacac198cb8923b83f789153dcaf96668d2229bcbaa849f038"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"确保 ecpg 合理地报告服务器连接丢失","url":"/docs/compare/?release=11.17#11.17-f9f3b5ee3385c287","version":"11.17"},{"db_id":"b69ca81749a3d3c124f2d922b0c164e3","evidence":{"patch_ids":["0dc2b7824381eab04941b47efcdc409f"],"same_day":false,"statement_hash":"c0763bbed91862aacac198cb8923b83f789153dcaf96668d2229bcbaa849f038"},"kind":"equivalent","label":"10.22","source_url":"/docs/release/10.22/#id-1.11.6.6.6","title":"确保 ecpg 合理地报告服务器连接丢失","url":"/docs/compare/?release=10.22#10.22-f9f3b5ee3385c287","version":"10.22"}],"relations":[{"evidence":{"patch_ids":["0dc2b7824381eab04941b47efcdc409f"],"same_day":false,"statement_hash":"c0763bbed91862aacac198cb8923b83f789153dcaf96668d2229bcbaa849f038"},"rule":2,"target":"9a2d1904fd7c6edbed2eaa066e2fb9af","type":"equivalent"},{"evidence":{"patch_ids":["0dc2b7824381eab04941b47efcdc409f"],"same_day":false,"statement_hash":"c0763bbed91862aacac198cb8923b83f789153dcaf96668d2229bcbaa849f038"},"rule":2,"target":"b69ca81749a3d3c124f2d922b0c164e3","type":"equivalent"},{"evidence":{"patch_ids":["0dc2b7824381eab04941b47efcdc409f"],"same_day":false,"statement_hash":"c0763bbed91862aacac198cb8923b83f789153dcaf96668d2229bcbaa849f038"},"rule":2,"target":"d1e3be98acf75dfcc864e82ac2600966","type":"equivalent"},{"evidence":{"patch_ids":["0dc2b7824381eab04941b47efcdc409f"],"same_day":false,"statement_hash":"c0763bbed91862aacac198cb8923b83f789153dcaf96668d2229bcbaa849f038"},"rule":2,"target":"d49bae63b2f43da94a73cff71067eb58","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["a5dbca460"],"source_entry_id":"14.4/changes/016","source_hash":"6822e9480b5721f3f60f3b1b29bf150b85519b6a83bcd12d96bf2669e50d5f9b","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"c0763bbed91862aacac198cb8923b83f789153dcaf96668d2229bcbaa849f038","text":"确保 ecpg 合理地报告服务器连接丢失（Tom Lane）§ 对 libpq 生成的错误结果（例如连接丢失报告）的错误处理，会导致打印 “(null)” 而非有用的错误消息；在更早的版本中则会导致崩溃。","title":"确保 ecpg 合理地报告服务器连接丢失","variants":[],"version":"14.4"},{"also_in":[],"category":"bugfix","category_label":"Bug fixes","commit_aliases":["32a85ee46","51da23159"],"commit_groups":[["32a85ee46","51da23159"]],"commits":["32a85ee46"],"cves":[],"db_id":"2f0c3a540df3ff630382a88a704dc602","html":"\u003cp\u003e防止 \u003cspan\u003epg_amcheck\u003c/span\u003e 在服务器连接丢失后崩溃（Tom Lane）\u003ca href=\"https://postgr.es/c/32a85ee46\"\u003e§\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e对 libpq 生成的错误结果（例如连接丢失报告）的错误处理，会导致崩溃。\u003c/p\u003e","id":"14.4-db10950d0a6192b2","identity_text":"Prevent crash after server connection loss in pg_amcheck (Tom Lane) Misprocessing of a libpq-generated error result, such as a report of lost connection, would lead to a crash.","part":"changes","patch_ids":["3a39afa9e257ca72f8ef46e0b5adaec9"],"related_changes":[],"relations":[],"section":"变更","section_path":["变更"],"source_commits":["32a85ee46"],"source_entry_id":"14.4/changes/017","source_hash":"95f1c1729a5b32e8f57e91b66243e74db518145a7b9d931e1d406a10d7d217be","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"1f458a3183e103e22062434424ee49990cd2dc947babe00d85cc973a78bc53bb","text":"防止 pg_amcheck 在服务器连接丢失后崩溃（Tom Lane）§ 对 libpq 生成的错误结果（例如连接丢失报告）的错误处理，会导致崩溃。","title":"防止 pg_amcheck 在服务器连接丢失后崩溃","variants":[],"version":"14.4"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["1072e4c45","6f9ea6cf3","9fdeae848","a3b685fdd","b5265196e","b53780e1b","c08538734","d4c161842","d5e1d5ed9","eb39610f8","eeac7dd9f"],"commit_groups":[["1072e4c45","6f9ea6cf3","9fdeae848","a3b685fdd","b5265196e","b53780e1b","c08538734","d4c161842","d5e1d5ed9","eb39610f8","eeac7dd9f"]],"commits":["1072e4c45"],"cves":[],"db_id":"64b9516f2fe9689f5aa6a0bc772d95fa","html":"\u003cp\u003e调整 PL/Perl 测试用例使其能在 Perl 5.36 下工作（Dagfinn Ilmari Mannsåker）\u003ca href=\"https://postgr.es/c/1072e4c45\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"14.4-2da4ec6f6035d837","identity_text":"Adjust PL/Perl test case so it will work under Perl 5.36 (Dagfinn Ilmari Mannsåker)","part":"changes","patch_ids":["2804187c844a2be6a8ae446d5125e0a3"],"related_changes":[{"db_id":"cc6e49273f37e92a8f11c42c0dceafce","evidence":{"patch_ids":["2804187c844a2be6a8ae446d5125e0a3"],"same_day":false,"statement_hash":"34d38786996b7e7e66b48d84f1727292009455d3373ac1627b25a2120a844ace"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"调整 PL/Perl 测试用例使其能在 Perl 5.36 下工作","url":"/docs/compare/?release=13.8#13.8-a579a743a3bd2184","version":"13.8"},{"db_id":"47d1163a6615975f3b84a168cbb7925e","evidence":{"patch_ids":["2804187c844a2be6a8ae446d5125e0a3"],"same_day":false,"statement_hash":"34d38786996b7e7e66b48d84f1727292009455d3373ac1627b25a2120a844ace"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"调整 PL/Perl 测试用例使其能在 Perl 5.36 下工作","url":"/docs/compare/?release=12.12#12.12-c41e42afc5fdf78b","version":"12.12"},{"db_id":"dc9d8077d31346ea833fcdc740b65306","evidence":{"patch_ids":["2804187c844a2be6a8ae446d5125e0a3"],"same_day":false,"statement_hash":"34d38786996b7e7e66b48d84f1727292009455d3373ac1627b25a2120a844ace"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"调整 PL/Perl 测试用例使其能在 Perl 5.36 下工作","url":"/docs/compare/?release=11.17#11.17-2c7d2c84f84f180b","version":"11.17"},{"db_id":"bcfadd2e923bb787399f120459ed0831","evidence":{"patch_ids":["2804187c844a2be6a8ae446d5125e0a3"],"same_day":false,"statement_hash":"34d38786996b7e7e66b48d84f1727292009455d3373ac1627b25a2120a844ace"},"kind":"equivalent","label":"10.22","source_url":"/docs/release/10.22/#id-1.11.6.6.6","title":"调整 PL/Perl 测试用例使其能在 Perl 5.36 下工作","url":"/docs/compare/?release=10.22#10.22-2c7d2c84f84f180b","version":"10.22"}],"relations":[{"evidence":{"patch_ids":["2804187c844a2be6a8ae446d5125e0a3"],"same_day":false,"statement_hash":"34d38786996b7e7e66b48d84f1727292009455d3373ac1627b25a2120a844ace"},"rule":2,"target":"47d1163a6615975f3b84a168cbb7925e","type":"equivalent"},{"evidence":{"patch_ids":["2804187c844a2be6a8ae446d5125e0a3"],"same_day":false,"statement_hash":"34d38786996b7e7e66b48d84f1727292009455d3373ac1627b25a2120a844ace"},"rule":2,"target":"bcfadd2e923bb787399f120459ed0831","type":"equivalent"},{"evidence":{"patch_ids":["2804187c844a2be6a8ae446d5125e0a3"],"same_day":false,"statement_hash":"34d38786996b7e7e66b48d84f1727292009455d3373ac1627b25a2120a844ace"},"rule":2,"target":"cc6e49273f37e92a8f11c42c0dceafce","type":"equivalent"},{"evidence":{"patch_ids":["2804187c844a2be6a8ae446d5125e0a3"],"same_day":false,"statement_hash":"34d38786996b7e7e66b48d84f1727292009455d3373ac1627b25a2120a844ace"},"rule":2,"target":"dc9d8077d31346ea833fcdc740b65306","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["1072e4c45"],"source_entry_id":"14.4/changes/018","source_hash":"0149a8cdd79f1957ad21e18181809fec7b87dc9c1f25091a8c133cf55d1d569f","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"34d38786996b7e7e66b48d84f1727292009455d3373ac1627b25a2120a844ace","text":"调整 PL/Perl 测试用例使其能在 Perl 5.36 下工作（Dagfinn Ilmari Mannsåker）§","title":"调整 PL/Perl 测试用例使其能在 Perl 5.36 下工作","variants":[],"version":"14.4"},{"also_in":[],"category":"improvement","category_label":"Improvements","commit_aliases":["12736e7dc","36d76da81","8ed13fb93","af9b96767","aff45c879","c61f36d99"],"commit_groups":[["12736e7dc","36d76da81","8ed13fb93","af9b96767","aff45c879","c61f36d99"]],"commits":["12736e7dc"],"cves":[],"db_id":"82a710a75821d2587b33f9bba342afcc","html":"\u003cp\u003e避免在构建 \u003cspan\u003ePostgreSQL\u003c/span\u003e 时，当存在多个 \u003cspan\u003eOpenLDAP\u003c/span\u003e 安装时错误地使用过时的 \u003cspan\u003elibldap_r\u003c/span\u003e 库（Tom Lane）\u003ca href=\"https://postgr.es/c/12736e7dc\"\u003e§\u003c/a\u003e\u003c/p\u003e","id":"14.4-f29ee6319361f0d0","identity_text":"Avoid incorrectly using an out-of-date libldap_r library when multiple OpenLDAP installations are present while building PostgreSQL (Tom Lane)","part":"changes","patch_ids":["88f4aa1042a3ce9789841eb94e25f7e1"],"related_changes":[{"db_id":"3e14d39949f688e375f392927caf9175","evidence":{"patch_ids":["88f4aa1042a3ce9789841eb94e25f7e1"],"same_day":false,"statement_hash":"020e08f1a9d4fe1667360a127e6c77087983492a390e21ca9f2cd7c3222ff290"},"kind":"equivalent","label":"13.8","source_url":"/docs/release/13.8/#id-1.11.6.21.5","title":"避免在构建 PostgreSQL 时，当存在多个 OpenLDAP 安装时错误地使用过时的 libldap_r 库","url":"/docs/compare/?release=13.8#13.8-cf362bf167ab3f6f","version":"13.8"},{"db_id":"996cc9ec86c642d266926eadc263addb","evidence":{"patch_ids":["88f4aa1042a3ce9789841eb94e25f7e1"],"same_day":false,"statement_hash":"020e08f1a9d4fe1667360a127e6c77087983492a390e21ca9f2cd7c3222ff290"},"kind":"equivalent","label":"12.12","source_url":"/docs/release/12.12/#id-1.11.6.16.5","title":"避免在构建 PostgreSQL 时，当存在多个 OpenLDAP 安装时错误地使用过时的 libldap_r 库","url":"/docs/compare/?release=12.12#12.12-6b525fcf72baa25d","version":"12.12"},{"db_id":"502938bb3d9e079af311ef7d9e687ebd","evidence":{"patch_ids":["88f4aa1042a3ce9789841eb94e25f7e1"],"same_day":false,"statement_hash":"020e08f1a9d4fe1667360a127e6c77087983492a390e21ca9f2cd7c3222ff290"},"kind":"equivalent","label":"11.17","source_url":"/docs/release/11.17/#id-1.11.6.10.5","title":"避免在构建 PostgreSQL 时，当存在多个 OpenLDAP 安装时错误地使用过时的 libldap_r 库","url":"/docs/compare/?release=11.17#11.17-741cff0da269647c","version":"11.17"},{"db_id":"7f99accadfbc1312c99d86def5380258","evidence":{"patch_ids":["88f4aa1042a3ce9789841eb94e25f7e1"],"same_day":false,"statement_hash":"020e08f1a9d4fe1667360a127e6c77087983492a390e21ca9f2cd7c3222ff290"},"kind":"equivalent","label":"10.22","source_url":"/docs/release/10.22/#id-1.11.6.6.6","title":"避免在构建 PostgreSQL 时，当存在多个 OpenLDAP 安装时错误地使用过时的 libldap_r 库","url":"/docs/compare/?release=10.22#10.22-741cff0da269647c","version":"10.22"}],"relations":[{"evidence":{"patch_ids":["88f4aa1042a3ce9789841eb94e25f7e1"],"same_day":false,"statement_hash":"020e08f1a9d4fe1667360a127e6c77087983492a390e21ca9f2cd7c3222ff290"},"rule":2,"target":"3e14d39949f688e375f392927caf9175","type":"equivalent"},{"evidence":{"patch_ids":["88f4aa1042a3ce9789841eb94e25f7e1"],"same_day":false,"statement_hash":"020e08f1a9d4fe1667360a127e6c77087983492a390e21ca9f2cd7c3222ff290"},"rule":2,"target":"502938bb3d9e079af311ef7d9e687ebd","type":"equivalent"},{"evidence":{"patch_ids":["88f4aa1042a3ce9789841eb94e25f7e1"],"same_day":false,"statement_hash":"020e08f1a9d4fe1667360a127e6c77087983492a390e21ca9f2cd7c3222ff290"},"rule":2,"target":"7f99accadfbc1312c99d86def5380258","type":"equivalent"},{"evidence":{"patch_ids":["88f4aa1042a3ce9789841eb94e25f7e1"],"same_day":false,"statement_hash":"020e08f1a9d4fe1667360a127e6c77087983492a390e21ca9f2cd7c3222ff290"},"rule":2,"target":"996cc9ec86c642d266926eadc263addb","type":"equivalent"}],"section":"变更","section_path":["变更"],"source_commits":["12736e7dc"],"source_entry_id":"14.4/changes/019","source_hash":"0ce12963d12c1343a5e79b3e57ec6d70770f0c529ec353e9ad8fd694c5306ec4","source_url":"/docs/release/14.4/#ZH-AUTO-RELEASE-14-SECT2-38","statement_hash":"020e08f1a9d4fe1667360a127e6c77087983492a390e21ca9f2cd7c3222ff290","text":"避免在构建 PostgreSQL 时，当存在多个 OpenLDAP 安装时错误地使用过时的 libldap_r 库（Tom Lane）§","title":"避免在构建 PostgreSQL 时，当存在多个 OpenLDAP 安装时错误地使用过时的 libldap_r 库","variants":[],"version":"14.4"}],"entry_count":19,"eol":"2026-11-12","eol_date":"2026-11-12","label":"14.4","major":"14","manual":"14","manual_build":"14.24","manual_url":"/docs/14/release-14-4.html","migration_html":"\u003cp\u003e对于运行 14.X 的用户，不需要执行导出/恢复。\u003c/p\u003e\n\u003cp\u003e但是，如果存在在 14.X 下使用 \u003ccode\u003eCONCURRENTLY\u003c/code\u003e 选项创建的索引，建议在更新后重建这些索引。请参见下面的第一个变更日志条目。\u003c/p\u003e\n\u003cp\u003e此外，如果是从早于 14.3 的版本升级，请参见\u003ca href=\"/docs/14/release-14-3.html\" title=\"E.22. 发布版本 14.3\"\u003e第 E.22 节\u003c/a\u003e。\u003c/p\u003e","minor":4,"placeholder":false,"source_as_of":"","source_url":"/docs/release/14.4/","status":"stable","status_label":"Supported","support_days":31,"supported":true,"version":"14.4"}],"mode":"release","release_count":1,"remaining_cves":[],"security_as_of":"2026-09-26","security_regressions":[],"source_as_of":"2026-09-26","stats":[{"count":19,"key":"all","label":"All changes"},{"count":0,"key":"feature","label":"Features"},{"count":9,"key":"bugfix","label":"Bug fixes"},{"count":0,"key":"security","label":"Security"},{"count":0,"key":"performance","label":"Performance"},{"count":0,"key":"compatibility","label":"Compatibility"},{"count":10,"key":"improvement","label":"Improvements"}],"to_release":{"age_days":1579,"build":"14.4","changes_count":19,"compatibility_count":0,"content_hash":"3d9061e5815218918f23fa13da3536b668d7f708107117dcf63a1938e65f1ed2","date":"2022-06-16","date_text":"2022-06-16","doc_git":"","doc_loaded_at":"2026-09-26T02:56:39.341991","entry_count":19,"eol":"2026-11-12","eol_date":"2026-11-12","label":"14.4","major":"14","manual":"14","manual_build":"14.24","manual_url":"/docs/14/release-14-4.html","migration_html":"\u003cp\u003e对于运行 14.X 的用户，不需要执行导出/恢复。\u003c/p\u003e\n\u003cp\u003e但是，如果存在在 14.X 下使用 \u003ccode\u003eCONCURRENTLY\u003c/code\u003e 选项创建的索引，建议在更新后重建这些索引。请参见下面的第一个变更日志条目。\u003c/p\u003e\n\u003cp\u003e此外，如果是从早于 14.3 的版本升级，请参见\u003ca href=\"/docs/14/release-14-3.html\" title=\"E.22. 发布版本 14.3\"\u003e第 E.22 节\u003c/a\u003e。\u003c/p\u003e","minor":4,"placeholder":false,"source_as_of":"","source_url":"/docs/release/14.4/","status":"stable","status_label":"Supported","support_days":31,"supported":true,"version":"14.4"},"total":19,"warnings":[]}
