PostgresがRustでフルスクラッチ!公式回帰テストを100%クリアという衝撃
Postgres rewritten in Rust, now passing 100% of the Postgres regression tests
Postgres rewritten in Rust, now passing 100% of the Postgres regression tests
PostgresのソースコードがRustで完全に書き直されました。驚くべきことに、本家のPostgresが実施している回帰テスト(regression tests)を100%パスする水準に到達したとのことです。Rustの安全性とPostgresの堅牢性が融合する未来が見えてきました。
「書き換え」と「AIによる書き換え」は、しっかり区別する必要があると思う。
最近、テストが通るかどうかだけで動作を判断するような書き換えをよく見かけるけど、PostgresやSQLiteのようなソフトウェアの信頼性を支えているのは、テストそのものじゃなくて、実際の運用現場で刻まれた傷跡なんだよね。長年本番環境で稼働し続けたこと、それが信頼性の源泉だよ。
こういうコードって、どうやってレビューすればいいんだろう?普段ならコミット履歴をチェックして、誰がどういう作業をしたかを確認するんだけど、1ヶ月も経たないうちにLLMが7101ものコミットを生成しているようじゃ、そんなの無理だよね。1日分を見るだけでも多すぎる[1]。そもそもコミットの中身自体が参考にならないなら、見る意味もなさそうだけど。
追伸:GitHubのリポジトリで最初のコミットに簡単にたどり着く方法ってある?コミット履歴を辿るのはかなり面倒に感じるんだけど。
[1] - https://github.com/malisper/pgrust/commits/main/?since=2026-... (https://github.com/malisper/pgrust/commits/main/?since=2026-06-12&until=2026-06-13)
著者です。まさかここで取り上げられるとは思っていませんでした。
プロジェクトの概要を簡潔に説明すると、LLMを使ってより良いPostgresを作る実験をしています。Postgresは30年前のソフトで、それ以来データベースについては多くの知見が得られました。書き換えに有効な手法の多くは、再アーキテクチャにも役立ちます。
現在、未公開ですが多くの手法を取り入れた新しいpgrustに取り組んでいます。現時点での新バージョンの状況です。
質問があれば何でも聞いてください。
「unsafe {」が2664回、「unsafe fn」が1835回か。完全にunsafeだね。中身を理解してRustの強みを活かすようにアーキテクチャを再設計した書き換えには見えないな。むしろ、生のポインタを多用したAIによるトランスパイルという感じ。
印象的だけど、ライセンスがPostgreSQLライセンス[0]からAGPL[1]に変更されているのが気になる。AGPLは真にフリーでオープンソースなライセンスとして最高だと思うけれど、互換性の面が心配だね。つまり、元のソースから書き換えられたものなら、元のライセンスが適用されるべきではないか(そうだろう)。最近はオープンソースを書き換えて、より制限の厳しいライセンスにする傾向(Rustのcoretoolsみたいな)があるけど、AGPLを選んだのはまだ倫理的かもしれない。ただ、いっそのこと変更しない方が安全ではないかと思ってしまう。
[0] https://www.postgresql.org/about/licence/ (https://www.postgresql.org/about/licence/)
[1] https://github.com/malisper/pgrust?tab=AGPL-3.0-1-ov-file (https://github.com/malisper/pgrust?tab=AGPL-3.0-1-ov-file)
これを確認する最善の方法は、稼働中の本番データベースの前にPgBouncerか何かプロキシを置いて、クエリを従来のPostgresとこのRust版の両方にミラーリングすることじゃないかな。そうすれば、実際の負荷環境下での出力結果とパフォーマンスを比較できる。しばらく走らせた後に、通常のPostgresインスタンスとテーブルを1対1でdiffを取ればいい。
こういった書き換えプロジェクトが理解できない。
こんなものを誰が本番環境で使いたがるんだ?全く意味がない。
私はAIによる書き換えなんて信用していない。2026年の今も、たぶんこれからも一生ね。
Jepsenで検証するか、さもなくば消えな。
最近は、新しいデータベースがネットワーク効果を使ってコミュニティを構築できる可能性は低い。普及させたいなら、今すぐ手作業でコミュニティ構築に精を出し、特定のニッチ層に向けて体験を最高レベルまで磨き上げるべき(AIは優先順位の指針にはなるけど、コミュニケーションの邪魔になる)。そうでなければ、趣味の開発として楽しめばいい。