PostgreSQL 全球開發小組已決定延後 PostgreSQL 19 的發布時間,原定於 9 月底或 10 月初發布,現預計將於 11 月 19 日左右正式推出。開發團隊同時撤回了 8 到 10 項重要功能,將其推遲至明年的 PostgreSQL 20 版本。

EDB 副總裁兼 PostgreSQL 主要提交者 Peter Eisentraut 解釋,此次延期與功能撤回的原因部分歸因於開發者採用的大型語言模型(LLM)輔助程式碼審查。雖然部分被撤回的功能存在難以在測試階段快速修復的重大架構缺陷,但 LLM 輔助審查也揭露了大量過去可能被忽略、通常會在發布後五年內透過錯誤修復處理的「相對無害的邊界情況問題」。Eisentraut 指出,隨著 AI 輔助審查在發布前幾個月變得更加有效,發現的缺陷數量激增,即使每個修復平均只需修改三行程式碼,處理每份報告的固定開銷仍導致時間不足。

Eisentraut 強調,這些撤回並非因為開發過程中的「Vibe Coding」(憑感覺編碼),因為大多數新功能編寫時該技術尚未普及。他承認,在功能編寫和提交後,LLM 輔助審查所設定的有效品質標準已被提高。他預測,除非 LLM 輔助審查的能力繼續以目前的速度提升,否則這種情況在未來的開發週期中將自行解決。

被撤回的功能包括 SQL 屬性圖查詢(SQL/PGQ),該功能於 2023 年成為 SQL 標準的一部分,提供探索節點間關係的語法,但因未解決的問題而被移除。PostgreSQL 貢獻者 Tom Lane 曾警告,若在 v19 中發布該功能,可能會出現直到 v20 才能修復的發布後錯誤。

儘管延期,Eisentraut 承諾 PostgreSQL 19 仍將是一個「偉大的版本」,包含 REPACK CONCURRENTLY 功能,該功能可避免使用會鎖定表格的 VACUUM FULL 操作來回收磁碟空間。他表示,經過額外的審查,該版本將非常穩健。被撤回的功能預計將進入 PostgreSQL 20,而幾個月前開發者原本預期 PostgreSQL 20 僅包含錯誤修復而無新功能。

事件背景

PostgreSQL 最早由 Michael Stonebraker 於 1986 年提出。1994 年,Andrew Yu 和 Jolly Chen 將查詢語言 POSTQUEL 替換為 SQL,並於 1995 年以更寬鬆的授權條款將資料庫免費開放並可修改,更名為 PostgreSQL。由於三大超大型雲端服務供應商基於其構建的服務以及可用的範圍廣泛的線相容分散式系統,PostgreSQL 已成為專業開發者中最受歡迎的資料庫。

社群觀察

社群討論集中在 AI 工具對軟體開發流程的影響。有評論認為,AI 發現的錯誤並非只需按下按鈕即可修復,而是需要深入考慮設計權衡的複雜問題,這類問題在資料庫或程式語言程式碼庫中更為常見。另一觀點指出,當工具能全面發現錯誤和測試案例時,開發者失去了對這些問題的「合理推諉」,這意味著每個功能都需要額外時間處理,而過去這些問題可能在較粗糙的狀態下發布。還有討論提到,爭議在於究竟是 AI 發現了更多錯誤,還是僅是因為 AI 讓開發者突然知曉了比往常更多的錯誤。部分意見認為,使用 AI 尋找錯誤(而非編寫錯誤)是一個很好的用例,但強調在將 AI 生成的「錯誤報告」作為問題提交給開發者之前,應由人工確認其是否為真實問題。另有評論指出,若僅使用 LLM 作為審查者,達到零缺陷狀態將需要更長時間,除非同時使用 LLM 作為編碼者。