После восьми месяцев разработки представлена первая бета-версия СУБД PostgreSQL 9.4.
Основные улучшения:
- Новый тип JSONB («binary JSON») для хранения структурированных наборов данных в формате, обеспечивающем высокую производительность и допускающем создание индексов, функций и операторов для манипулирования данными JSON;
- Новый Data Change Streaming API, позволяющий декодировать и преобразовывать потоки данных, передаваемые в результате репликации. Указанный API может использоваться для создания новых более гибких, высокопроизводительных и масштабируемых инструментов репликации;
- Поддержка слотов репликации, позволяющих запасному серверу передавать системе, с которой поступают данные репликации, информацию о позиции в журнале репликации, которой соответствует текущее состояние запасной системы;
- Выражение «REFRESH MATERIALIZED VIEW CONCURRENTLY» для фонового обновления материализованных представлений без блокировки таблиц до завершения перестроения представления, генерирующего суммарный отчёт над сложным набором данных. Например, «REFRESH MATERIALIZED VIEW CONCURRENTLY mv_data»;
- Выражение «ALTER SYSTEM SET» для изменения настроек, заданных в файле postgresql.conf, из командной строки SQL или удалённых клиентов. Например, «ALTER SYSTEM SET log_min_duration_statement = ‘5s'»;
- Утилита pg_prewarm для перезапуска сервера в тёплом режиме с сохранением состояния кэшей и буферов;
- Выражение «WITH ORDINALITY» для вывода номеров строк при выводе результатов функции, например, «SELECT * FROM json_object_keys(‘{«mobile»: 4234234232, «email»: «x@me.com», «address»: «1 Street Lane»}’::json) WITH ORDINALITY»;
- Возможность установки порядка группируемых значений, например,
«SELECT mode() WITHIN GROUP (ORDER BY eye_colour) FROM population»;