DuckDBは2026年9月28日に1.5.6を発表した。1.5(Variegata)系列の6番目のパッチリリースだ。

発表の正確性の項目には13件の修正が載っている。揮発性の射影を通るLIMITのプッシュダウンや、UNION ALLの分岐が結合の部分木を共有するときの誤った結果などだ。

チェックポイントマーカーの復旧失敗と、WAL復旧中にメインのWALハンドルを閉じずに上書きしていた問題も直した。WALは変更内容を先に記録しておくログファイルだ。

そのため、クエリが実行できたという事実だけで移行を通すのは難しい。これは発表された修正内容であり、この記事がバグを再現した結果ではない。

返す・保存するデータの意味を変える二つの修正

リリースノートのうち回帰入力として残しておきたい例は二つある。非常に長い整数リテラルをHUGEINTとして扱うときの暗黙の切り捨てと、ParquetのTIME_NS値の読み書きだ。

HUGEINTは128ビットの整数型で、TIME_NSはナノ秒単位の時刻値だ。

どちらも実行速度ではなく、返したりファイルに保存したりするデータの意味に関わる。エラーなく終わったクエリが別の値を返し得るということだ。

注意点:2.0.0の日付は暫定

リリースカレンダーは2.0.0を2026年10月21日、2.0.1を11月18日としている。同じページは、これらの日付は暫定で、安定性と品質のために延期され得ると記している。

次のメジャーバージョンは別の経路だ。リリースの保証でもなく、今回の1.5のメンテナンス判断に代わる日程でもない。

値・null・行数から見るアップグレード比較

デプロイ前の最初の段階は、小さな代表データセットを現行バージョンと1.5.6に通し、値、nullの扱い、行数を比べることだ。

予想外の差は回帰入力として残す。性能が重要なら、実行時間はその後に測る。

これは提案する点検であり、この記事の性能ベンチマークではない。2.0の開発ビルドの評価は別に扱う。

正確性の修正を含むパッチでまず確かめるのは、速くなったクエリではなく、同じ入力が同じ値を返すかどうかだ。