PostgreSQL 全球開發團隊已針對我們資料庫系統的所有支援版本發布更新,包括 12.1、11.6、10.11、9.6.16、9.5.20 和 9.4.25。此版本修正了過去三個月回報的 60 多個錯誤。
PostgreSQL 9.4 將於 2020 年 2 月 13 日停止接收修正,這也是下一次計畫的累積更新發布日期。 請參閱我們的版本控制政策以獲取更多資訊。
此次更新也修正了過去幾個月回報的 50 多個錯誤。 這些問題中有一些僅影響 12 版本,但也可能影響所有支援的版本。
其中一些修正包括:
ALTER TABLE
在新增沒有預設值的欄位時,同時伴隨其他需要重寫表格的變更時,可能發生的崩潰。REINDEX CONCURRENTLY
的修正。VACUUM
的修正,在涉及仍在執行中的交易的特定情況下,可能導致其失敗。VACUUM
在 GiST 索引上執行時可能發生的記憶體洩漏的修正。CLUSTER
時發生的錯誤的修正。SET CONSTRAINTS ... DEFERRED
的失敗。bitshiftright()
的錯誤行為,如果位元字串長度不是 8 的倍數,它無法將最後一個位元組中的填充空間歸零。 有關如何更正您的資料,請參閱「更新」章節。position()
函數評估的空字串按照 SQL 標準傳回 1。BEFORE UPDATE
觸發程序的情況觸發的崩潰。recovery_min_apply_delay
,則避免封存復原失敗。restore_command
、recovery_end_command
和 recovery_min_apply_delay
設定。pg_stat_subscription.last_msg_send_time
設定為 NULL
。pg_upgrade
的修正。pg_dump
現在根據資料表名稱(而不是 OID)依順序輸出類似名稱的觸發程序和 RLS 政策。pg_rewind
在使用 --dry-run
選項時,不會更新 pg_control
的內容。此更新還包含 tzdata 版本 2019c,用於斐濟和諾福克島的 DST 法律變更。 阿爾伯塔省、奧地利、比利時、不列顛哥倫比亞省、柬埔寨、香港、印第安納州(佩里縣)、加里寧格勒、肯塔基州、密西根州、諾福克島、韓國和土耳其的歷史修正。
如需所有可用變更的完整清單,請查看發布說明。
所有 PostgreSQL 更新版本都是累積的。 與其他次要版本一樣,使用者不需要傾印和重新載入他們的資料庫或使用 pg_upgrade
才能套用此更新版本; 您只需關閉 PostgreSQL 並更新其二進位檔即可。
跳過一個或多個更新版本的使用者可能需要執行額外的更新後步驟; 請參閱較早版本的發布說明以獲取詳細資訊。
如果您的資料由於將 bitshiftright()
的輸出儲存在資料表中而產生不一致的情況,則可以使用類似於下面的查詢來修正它:
UPDATE mytab SET bitcol = ~(~bitcol) WHERE bitcol != ~(~bitcol);
注意:PostgreSQL 9.4 將於 2020 年 2 月 13 日停止接收修正。 請參閱我們的版本控制政策以獲取更多資訊。