PostgreSQL全球發(fā)展小組已發(fā)布所有受支持版本的PostgreSQL的更新,包括17.5、16.9、15.13、14.18和13.21。 此版本修復(fù)了過去幾個(gè)月中報(bào)告的1個(gè)安全漏洞和超過60個(gè)錯(cuò)誤。
PostgreSQL 13 結(jié)束支持聲明
PostgreSQL 13 將于 2025 年 11 月 13 日停止接收修復(fù)。如果您在生產(chǎn)環(huán)境中運(yùn)行 PostgreSQL 13,我們建議您計(jì)劃升級(jí)到最新支持版本的 PostgreSQL。
安全問題
CVE-2025-4207:PostgreSQL GB18030 編碼驗(yàn)證可以讀取驗(yàn)證失敗的文本在分配結(jié)束后的一頁(yè)字節(jié)
CVSS v3.1 基礎(chǔ)評(píng)分: 5.9
支持版本、易受攻擊版本:13 - 17。
在PostgreSQL GB18030編碼驗(yàn)證中,一個(gè)緩沖區(qū)過讀允許數(shù)據(jù)庫(kù)輸入提供者在某些平臺(tái)上實(shí)現(xiàn)臨時(shí)的服務(wù)拒絕。這影響了數(shù)據(jù)庫(kù)服務(wù)器和libpq。受影響的版本包括PostgreSQL 17.5、16.9、15.13、14.18和13.21之前的所有版本。
錯(cuò)誤修復(fù)和改進(jìn)
此更新修復(fù)了過去幾個(gè)月中報(bào)告的60多個(gè)錯(cuò)誤。 以下列出的問題影響PostgreSQL 17。這些問題可能也會(huì)影響其他受支持的PostgreSQL版本。
正確處理分區(qū)表上的自引用外鍵。創(chuàng)建或附加分區(qū)失敗,如果外鍵引用的表是相同的分區(qū)表,則無(wú)法為外鍵約束創(chuàng)建所需的目錄條目。這導(dǎo)致無(wú)法完全強(qiáng)制執(zhí)行該約束。要解決此問題,請(qǐng)參閱“更新”部分中的說明。
修復(fù)了在使用BRIN bloom索引時(shí)(例如使用date_bloom_ops操作符類)可能導(dǎo)致數(shù)據(jù)丟失的問題。
修復(fù) MERGE 到一個(gè) 分區(qū)表中,執(zhí)行 DO NOTHING 操作。
防止在INSERT 命令中失敗,當(dāng)表有一個(gè)GENERATED列 的域類型 且該域的約束不允許NULL值。
修復(fù)ALTER TABLE .. ADD COLUMN以正確處理具有域類型且有其自己的默認(rèn)值,而DEFAULT列沒有設(shè)置默認(rèn)值的情況。
修復(fù)在JSON構(gòu)造函數(shù)表達(dá)式的鍵中進(jìn)行類型轉(zhuǎn)換時(shí)的問題。
修復(fù)XMLSERIALIZE(),以便在INDENT視圖或規(guī)則中存在時(shí),正確地導(dǎo)出該選項(xiàng)。這在恢復(fù)時(shí)是顯而易見的。
多個(gè)查詢計(jì)劃器修復(fù),包括避免在具有 FILTER和 ORDER BY或 DISTINCT子句的聚合函數(shù)中過早評(píng)估參數(shù),這可能導(dǎo)致不必要的失敗。
修復(fù)了在對(duì)同一表執(zhí)行真空操作時(shí)執(zhí)行沒有輸出列的位圖掃描可能會(huì)返回不正確結(jié)果的問題。
修復(fù)在有大量搜索鍵(例如,jsonbcol ?| array[...]有數(shù)萬(wàn)數(shù)組元素)時(shí)GIN索引搜索啟動(dòng)的性能問題。
確保活動(dòng)WAL發(fā)送器的I/O統(tǒng)計(jì)數(shù)據(jù)在最多一秒鐘內(nèi)被報(bào)告。
修復(fù)在處理中出現(xiàn)的競(jìng)爭(zhēng)條件synchronous_standby_names在啟動(dòng)后立即,后端可能無(wú)法等待同步提交。
如果scram_iterations 設(shè)置為INT_MAX,則避免無(wú)限循環(huán)。
對(duì)邏輯復(fù)制進(jìn)行了一些修復(fù),包括處理邏輯解碼仍需要的已刪除行周圍的 vacuum。
防止?jié)撛诘臄?shù)據(jù)丟失,當(dāng)不采取強(qiáng)鎖的模式修改操作(DDL)影響正在邏輯復(fù)制的表時(shí)。
防止由于應(yīng)用工作錯(cuò)誤處理而在邏輯復(fù)制中出現(xiàn)的問題,導(dǎo)致重復(fù)數(shù)據(jù)被應(yīng)用。
改進(jìn)如何reindexdb 處理調(diào)度并行重新索引操作以實(shí)現(xiàn)預(yù)期的并行度。
此版本還更新了時(shí)區(qū)數(shù)據(jù)文件至tzdata 2025b版本,以反映智利的夏令時(shí)法律變更,以及伊朗的歷史修正。此外,新增了一個(gè)智利Aysén地區(qū)的時(shí)區(qū)文件America/Coyhaique,以反映該地區(qū)全年使用UTC-03時(shí)區(qū),這與America/Santiago不同。
更新中
所有 PostgreSQL 更新版本都是累積的。與其他小版本發(fā)布一樣, 用戶不需要導(dǎo)出和重新加載數(shù)據(jù)庫(kù)或使用 pg_upgrade 來(lái)應(yīng)用這個(gè)更新版本; 您可以簡(jiǎn)單地關(guān)閉 PostgreSQL 并更新其二進(jìn)制文件。
如果您在分區(qū)表上創(chuàng)建了自引用外鍵,更新后,如果在約束創(chuàng)建之后創(chuàng)建或附加了分區(qū),您應(yīng)該刪除并重新創(chuàng)建這些自引用外鍵。分區(qū)中可能會(huì)有違反此約束的行,在這種情況下,重新創(chuàng)建約束將失敗,您需要在再次嘗試之前更正這些行。
跳過了一個(gè)或多個(gè)更新版本的用戶可能需要運(yùn)行額外的更新后步驟;請(qǐng)參閱早期版本的發(fā)行說明以獲取詳細(xì)信息。
欲了解更多詳情,請(qǐng)參閱 發(fā)行說明。
來(lái)源:發(fā)布于 2025-05-08 由 PostgreSQL 全球開發(fā)組,百度翻譯結(jié)果