PostgreSQL 19 отложили после того, как AI-ревьюеры нашли больше ошибок, чем могут исправить люди

Группа разработчиков PostgreSQL Global Development Group отложила выпуск PostgreSQL 19 и удержала необычно большое количество функций. Если изначально релиз был запланирован на конец сентября или начало октября, то теперь он ожидается примерно 19 ноября. Кроме того, разработчики отозвали от 8 до 10 значительных функций.

Объясняя количество откатанных функций — функций, развертывание которых теперь отложено до выпуска PostgreSQL 20 в следующем году, Питер Айзентраут, вице-президент компании EDB (специалист по поддержке и консультациям PostgreSQL), указал, что причина может быть, по крайней мере отчасти, связана с использованием LLM для проверки кода разработчиками.

В своем блоге Айзентраут, являющийся ведущим коммиттером PostgreSQL, отметил, что некоторые из откатанных функций имели серьезные архитектурные дефекты, которые было бы сложно исправить «быстро и во время бета-тестирования».

Однако внедрение LLM-ассистируемой проверки кода также выявило «длинный хвост» относительно безобидных проблем, связанных с различными edge cases, которые в прежние времена разработчики могли бы не заметить до намного позже — скорее всего, выпустив исправления в течение пяти лет после запуска. «При LLM-ассистируемой проверке кода эти проблемы можно обнаружить намного быстрее, но тогда вы остаетесь с перед списком из сорока отчетов об ошибках. Даже если каждый из них требует в среднем только трехстрочного исправления, есть фиксированные затраты на работу с каждой из них, и в итоге время заканчивается».

Когда писались крупные обновления для PostgreSQL 19, LLM-ассистируемая проверка кода была не столь полезна, как сейчас. Но в месяцы, предшествовавшие запуску, AI-поддерживаемые проверки стали лучше изучены и более эффективны.

«Эффективный уровень качества повысился после написания и коммита функции. Если возможности LLM-ассистируемой проверки кода продолжат улучшаться с нынешней скоростью, эта ситуация должна разрешиться в будущих циклах разработки», — заявил Айзентраут.

Он также подчеркнул, что откаты не были результатом «vibe coding» в разработке, так как эта методология была недоступна, когда большинство новых функций писались и коммитились.

PostgreSQL был впервые предложен Майклом Стоунбрейкером в 1986 году. В 1994 году Эндрю Ю и Джоллу Чен заменили язык запросов POSTQUEL на SQL, а в 1995 году сделали базу данных свободно доступной и модифицируемой по более permissive лицензии, переименовав ее в PostgreSQL. С тех пор она стала самой популярной базой данных среди профессиональных разработчиков благодаря услугам трех крупнейших гиперскейлеров, построившим на ней системы, а также благодаря широкому спектру совместимых по протоколу распределенных систем.

Среди функций, удаленных из PostgreSQL 19, — поддержка SQL Property Graph Queries (SQL/PGQ), которая стала частью стандарта SQL в 2023 году. Функция предоставляет синтаксис для изучения отношений между узлами, соединенными ребрами. Реализация PostgreSQL была удалена из-за нерешенных проблем.

В то время участник проекта PostgreSQL Том Лейн предупредил: «В этот момент я готов поспорить ужином, что если мы поставим это в v19, будут обнаружены ошибки после выпуска, которые невозможно исправить до v20».

Несмотря на задержку, Айзентраут обещает, что PostgreSQL 19 все равно будет «отличным релизом», который включает REPACK CONCURRENTLY, избегающий блокировки таблицы при операции VACUUM FULL, используемой для освобождения дискового пространства.

«И это будет очень надежно, благодаря всему дополнительному тщательному анализу», — сказал он.

Функции, откатанные из PostgreSQL 19, скорее всего, войдут в PostgreSQL 20. Всего несколько месяцев назад разработчики ожидали, что PostgreSQL 20 не будет иметь новых функций, только исправления ошибок. Теперь скорее всего будут новые функции, оставшиеся от более ранней версии, добавил Айзентраут.®