PostgreSQL 10.2、9.6.7、9.5.11、9.4.16 和 9.3.21 版本已發布!
發布於 2018-02-08,作者:PostgreSQL 全球開發團隊
PostgreSQL 專案 安全性
PostgreSQL 全球開發團隊已發布我們資料庫系統所有支援版本的更新,包括 10.2、9.6.7、9.5.11、9.4.16、9.3.21。此版本修復了兩個安全性問題。此版本也修復了 VACUUM、GIN 索引和雜湊索引的問題,這些問題可能導致資料損毀,並修復了使用平行查詢和邏輯複製的問題。
所有使用受影響 PostgreSQL 版本的用戶都應盡快更新。請參閱以下「更新」上的注意事項,了解可能需要的任何更新後步驟。
請注意,PostgreSQL 在 10.0 版本發布時變更了其版本控制方案,因此從 10.0 或 10.1 版本更新到 10.2 版本被視為小版本更新。
安全性問題
此版本已修復了兩個安全性漏洞
錯誤修復和改進
此更新修復了過去幾個月報告的 60 多個錯誤。其中一些問題僅影響 10 版本,但許多問題影響所有支援的版本
- 修復處理包含多個表達式的分割區鍵時發生的崩潰和後端記憶體的潛在洩漏
- 透過不允許這些檔案可讓所有使用者存取,修復 pg_upgrade 建立的包含資料庫密碼的暫存檔的潛在洩漏
- 修復 VACUUM 在「key-share」鎖定時更新已刪除的列時不會刪除它們的情況,從而導致潛在的資料損毀
- 修復 GIN 索引以防止膨脹,方法是確保 VACUUM 清理待處理的插入清單
- 修復雜湊索引的潛在索引損毀,原因是未能將元頁面標記為髒頁
- 修復平行查詢的幾種潛在崩潰情境,包括點陣圖堆積掃描無法分配記憶體時
- 修復平行查詢中的幾種潛在停頓,包括平行工作程序無法啟動時
- 修復從平行工作程序收集 EXPLAIN 統計資訊
- 防止多個會話同時執行 CREATE INDEX CONCURRENTLY 時出現虛假的死鎖故障
- 修復使用邏輯複製時的觸發程序行為
- 修復了 "walsender" 功能的多項問題,以提高穩定性以及邏輯複製程序的能見度
- 修復邏輯解碼以正確清理崩潰交易的磁碟檔案
- 修復身分欄位的多項問題,包括不允許複合類型和分割區衍生的資料表上的身分欄位
- 修復布林值和陣列類型的分割區鍵的清單分割區限制的處理方式
- 修復當資料表混合繼承的一般和外部子資料表時,UPDATE 和 DELETE 查詢產生不正確的計畫
- 修復涉及 GROUPING SETS 與扁平子查詢一起使用時的不正確查詢結果
- 修復零欄位上的 UNION/INTERSECT/EXCEPT,例如 "SELECT UNION SELECT;"
- 修復 LATERAL 子查詢中的多個子查詢
- 改進查詢計畫估算的多項問題
- 允許支援 SCRAM 通道綁定的用戶端(例如未來版本的 PostgreSQL 或 libpq)連接到 PostgreSQL 10 伺服器
- 修復用於協助從 Oracle(r) PL/SQL 轉換到 PostgreSQL PL/pgSQL 的範例 INSTR() 函式,以正確符合 Oracle 函式行為
- 修復 pg_dump 以在封存輸出中可靠地識別權限 (ACL)、安全性標籤和註解條目
- 修改 contrib/cube 的 "cube ~> int" 運算子的行為,使其與 KNN 搜尋相容。這是一個向後不相容的變更,任何使用此運算式的索引或實體化視圖都需要重新建立索引並分別重新整理。
- 修復 contrib/postgres_fdw 中的多項問題以防止查詢計畫程式錯誤
- 在 contrib/start-scripts/macos 目錄中新增適用於 macOS 上 PostgreSQL 的現代自動啟動指令碼範例
- 修復 Windows 的多項問題,包括 postmaster 啟動和與 libperl 的相容性
- 修正旋轉鎖和支援 Motorola 68K 和 88K 架構
此更新還包含 tzdata 版本 2018c,其中包含巴西、聖多美和普林西比的 DST 法律變更的更新,以及玻利維亞、日本和南蘇丹的歷史修正。US/Pacific-New 時區已移除(它無論如何只是 "America/Los_Angeles" 的別名)。
更新
所有 PostgreSQL 更新版本都是累積的。與其他小版本一樣,用戶不需要傾印和重新載入其資料庫或使用 pg_upgrade 即可套用此更新版本;您可以直接關閉 PostgreSQL 並更新其二進位檔。
如果您的安裝受到以下問題之一的影響,您可能需要執行額外的更新後步驟
- 受 GIN 和雜湊索引問題影響的使用者應考慮重建這些索引
- 複製自 PostgreSQL 文件中的 "INSTR" 範例的使用者應分析其程式碼,以確定是否需要套用已修正的 "INSTR" 範例
- 使用運算式索引或實體化視圖中找到的 "contrib/cube" 中的 "~>" 運算子的使用者將需要重新建立索引並分別重新整理它們。此變更也是向後不相容的,因此請在發布到生產環境之前測試任何使用此運算子的程式碼。
跳過一個或多個更新版本的用戶可能需要執行額外的更新後步驟;請參閱早期版本的發布說明以了解詳細資訊。
連結