По-моему уже недели две форсится история про переписывание PostgreSQL на Rust. Наконец готов про это написать.
Что это. Человек взял восемь платных аккаунтов Codex по $200 в месяц и гоняет через Conductor по 10-20 сессий разом. Наращивал, пока не уперся в процессор собственного компа, вышло 17 агентов параллельно. На выходе pgrust: 450 тысяч строк Rust, 3.9k звезд и заявка, ради которой все и завирусилось. Проходит все 46 066 запросов регрессионного сьюта постгреса.
А потом пришел фаззер. 9 июля заявка попала на HN, и в тот же день за pgrust взялся Андреас Зельтенрайх с SQLsmith (тем самым, которым ловят баги в самом постгресе). Пара дней, и вот issue #23: SELECT numrange_subdiff(1,1) роняет бэкенд в signal 11, segmentation fault. Постгрес на этом запросе спокойно возвращает 0. Следом внутренняя ошибка на MERGE и три нарушения инвариантов планировщика.
Заодно поехали бенчмарки. В README "+18.5% к ClickHouse" и "+30% к Postgres 18.3". В issue #31 человек взял опубликованный образ, прогнал pgbench и намерил 728 транзакций в секунду против 6365 у ванильного. Инициализация 87 секунд против 8. Разгадка скучная: вендор мерил на 300 ГБ read-only, а критик гонял в докере на двух ядрах. Обе цифры честные, стенды разные. Мейнтейнер в issue так и не ответил.
Что я про это думаю. Вопрос "может ли агент написать СУБД" закрыт, вот она лежит и отвечает по протоколу. Открылся другой: чем это проверять. Регрессионный сьют гоняет запросы, которые кто-то заранее придумал и записал. Фаззер гоняет все остальные. Разница между этими множествами и есть все содержание слова "корректность", и пары дней хватило, чтобы ее показать.
К чести автора, в README написано прямо: не клади сюда данные, которые тебе дороги.
А мне это все читается как отдельная история. Когда приезжает PR на десять тысяч строк с зеленым CI, вопрос давно не "прошли ли тесты", а кто их писал и на что они смотрят...
https://github.com/malisper/pgrust
Post #115
166

- 🔥 4