2025年9月25日: PostgreSQL 18 釋出!

PostgreSQL 11.1、10.6、9.6.11、9.5.15、9.4.20 和 9.3.25 釋出!

釋出於 2018-11-08,作者 PostgreSQL 全球開發組
PostgreSQL 專案

PostgreSQL 全球開發組釋出了我們資料庫系統的所有受支援版本的更新,包括 11.1、10.6、9.6.11、9.5.15、9.4.20 和 9.3.25。此次釋出修復了一個安全問題以及過去三個月報告的 bug。

所有使用受影響 PostgreSQL 版本的使用者應儘快更新。如果您在安裝中使用了 pg_stat_statements,請參閱下文“更新”中的說明,瞭解可能需要的任何更新後步驟。

此次更新也是 PostgreSQL 9.3 的最後一個版本,該版本現已到達生命週期終點,將不再接收任何 bug 或安全修復。如果您的環境仍在使用 PostgreSQL 9.3,請儘快制定計劃更新到社群支援的版本。有關更多資訊,請參閱我們的 版本策略

安全問題

此次釋出修復了一個安全漏洞

  • CVE-2018-16850pg_upgradepg_dump 中的 SQL 注入,透過 CREATE TRIGGER ... REFERENCING 實現。

受影響版本:10, 11

透過專門構造的觸發器定義,當超級使用者在資料庫上執行 pg_upgrade 或在 pg_dump 轉儲/恢復週期中,攻擊者可以以超級使用者許可權執行任意 SQL 語句。此攻擊需要對某個非臨時模式擁有 CREATE 許可權,或對錶擁有 TRIGGER 許可權。在預設的 PostgreSQL 配置中,所有使用者都對 public 模式擁有 CREATE 許可權,因此該漏洞是可被利用的。

錯誤修復和改進

此次更新還修復了過去幾個月報告的眾多 bug。其中一些問題僅影響版本 11,但許多問題影響所有受支援的版本。

這些釋出包含以下修復:

  • 確保自動建立的子索引與父分割槽索引在同一表空間中建立
  • 修復了與觸發器相關的多個崩潰問題
  • 修復了將 ON COMMIT DELETE ROWS 應用於分割槽臨時表時出現的問題
  • 修復了在使用帶並行雜湊連線的 LEFT JOINNULL 值的處理方式
  • 修復了在使用 CALL 語句時命名引數或預設引數的幾個問題
  • 修復了嚴格聚合函式(即不能接受 NULL 輸入的聚合函式)與 ORDER BY 列的問題,從而強制執行嚴格性檢查
  • 修復了 CASE 語句中表達式被強制轉換為陣列型別的問題
  • 停用了更新表示式索引的最佳化,以防止崩潰
  • 修復了在使用 SP-GiST 索引的特定情況下的記憶體洩漏問題
  • 修復了 pg_verify_checksums 錯誤報告不應具有校驗和的檔案的問題
  • 阻止 PostgreSQL 伺服器在 wal_level 設定為不支援現有複製槽的值時啟動
  • 確保伺服器在等待客戶端輸入之前會處理已接收到的 NOTIFY 和 SIGTERM 中斷
  • 允許 PL/Ruby 與更新版本的 PostgreSQL 一起工作
  • 修復了 Windows 上對 Unicode 字元(U+FFFF 以上)的字元類檢查問題,該問題影響了全文搜尋以及 contrib/ltreecontrib/pg_trgm
  • 修復了 psql 在收到 NOTIFY 呼叫訊息後,直到下一個命令之前都不會報告該訊息的問題
  • 修復了 macOS 10.14 (Mojave) 上的構建問題
  • 修復了 Windows 平臺上的多個構建問題

此次更新還包含 tzdata 2018g 版本,用於智利、斐濟、摩洛哥和俄羅斯(伏爾加格勒)的 DST 法規變更,以及中國、夏威夷、日本、澳門和朝鮮的歷史修正。

PostgreSQL 9.3 已達到生命週期終點 (EOL)

PostgreSQL 9.3 已達到生命週期終點,將不再接收任何 bug 或安全修復。我們敦促使用者儘快開始規劃升級到更高版本的 PostgreSQL。有關更多資訊,請參閱我們的 版本策略

更新

所有 PostgreSQL 更新版本都是累積的。與其他次要版本一樣,使用者不需要轉儲和重新載入資料庫或使用 pg_upgrade 來應用此更新版本;您可以直接關閉 PostgreSQL 並更新其二進位制檔案。

如果您的系統正在使用 pg_stat_statements,並且您使用的是 PostgreSQL 10 或 PostgreSQL 11 版本,我們建議您在升級後執行以下命令:

ALTER EXTENSION pg_stat_statements UPDATE;

跳過了一個或多個更新版本的使用者可能需要執行額外的、更新後的步驟;有關詳細資訊,請參閱早期版本的釋出說明。

連結