Вышла первая альфа-версия PostgreSQL 9.1
8 сентября 2010 года
Еще до момента выхода финального релиза PostgreSQL 9.0 представлена первая альфа версия следующей ветки - PostgreSQL 9.1, первый релиз которой ожидается в середине 2011 года.
Ключевые улучшения PostgreSQL 9.1alpha1:
- Добавлена поддержка конструкции "CREATE TABLE IF NOT EXISTS", позволяющая создавать таблицу только если она еще не существует;
- Для первичных ключей реализовано определение функциональной зависимости, что позволяет исключить в некоторых условиях столбцы с не первичными ключами из блоков "GROUP BY";
- Сокращен уровень блокировок для "CREATE TRIGGER" и некоторых действий с "ALTER TABLE" и "CREATE RULE", что положительно сказывается на производительности;
- Изменено значение по умолчанию для опции "standard_conforming_strings", которая теперь переведена в активное состояние, что значительно отражается на совместимости с прошлыми выпусками, так как опция блокирует выполнение некоторых операций со стоками, выполняемых небезопасным путем;
- Добавлены новые параметры файла конфигурации: log_file_mode для задания прав доступа на лог-файл, и restart_after_crash для управления поведением сервера в случае краха;
- Добавлена поддержка аутентификации сервера через доменные сокеты Unix (Unix-domain sockets);
- В представления "pg_stat_*_tables" добавлены счетчики выполнения операций vacuum и analyze;
- Добавлены новые функции для обработки XML-данных: xmlexists, xpath_exists, xml_is_well_formed;
- Добавлены новые строковые функции: concat(), concat_ws(), left(), right() и reverse();
- Увеличена компактность представления числовых типов;
- В утилиты pg_dump и pg_dumpall добавлена опция "--quote-all-identifiers", включающая режим заключения в кавычки идентификаторов;
- В командной оболочке psql расширены возможности команд "\e" и "\ef", в которых теперь допустимо указания номера строки и возможно перемещение курсора в режиме редактирования на указанную позицию. Для просмотра информации о текущих соединениях добавлена команда "\conninfo".
Во второй альфа-версии добавлены следующие новшества:
- Поддержка установки триггеров на представления с целью обеспечения программируемых действий над операциями по вставке, обновлению и удалению данных (INSERT, UPDATE и DELETE);
- Возможность модификации содержимого ENUM-полей (упорядоченный перечисляемый тип данных). Отныне можно добавлять новые значения в тип данных ENUM без пересоздания типа и обновления связанных таблиц;
- Возможность использования выражения "WITH" с операциями INSERT, UPDATE, DELETE, что позволяет осуществить рекурсивное обновление столбцов или обновление по сложному критерию, ранее требовавшему написания встраиваемой процедуры;
- Поддержка использования имен хостов вместо IP-адресов в файле pg_hba.conf;
- Обновлены ISBN-таблицы в contrib/isn.
Из добавленных в третьей альфа-версии улучшений можно отметить:
- Реализация KNN GiST, добавляющая в GiST поддержку алгоритма оптимального поиска ближайших соседей, что может быть использовано для организации поиска географических объектов;
- Дополнительные возможности обслуживания и мониторинга, включая поддержку интроспекции контрольных точек (checkpoint introspection) и учет информации о последних изменениях WAL-лога (last-WAL-timestamp) в репликации;
- Несколько новых встроенных функций: format(), pg_describe_object(), pg_read_binary_file(), которые в будущем будут поддерживать технологию подключения дополнений;
- Новые функции в libpq: PQping(), PQlibVersion();
- Поддержка генерации crash-дампов на платформе Windows;
- Новый модуль auth_delay, позволяющий реализовать дополнительную задержку в случае некорректной аутентификации для защиты от атак по подбору паролей;
- Отслеживание создания объектов, необходимое для реализации поддержки технологии обеспечения безопасности SEPostgres.
Из добавленных в PostgreSQL 9.1 Alpha 5 улучшений можно отметить:
- Поддержка указания COLLATION-свойств для отдельных столбцов, доменов, индексов и выражений, что позволяет задать для разных столбцов свои правила хранения, сортировки и сравнения с учетом указанной локали. Например: CREATE TABLE test1 ( a text COLLATE "de_DE", b text COLLATE "ru_RU"...). Ранее COLLATION могли быть указаны только на уровне БД в целом.
- Поддержка синхронной репликации, при которой запасной сервер (standby) будет содержать гарантированно совпадающие с основным сервером данные - до получения подтверждения записи синхронизированных данных транзакция не будет считаться завершенной. Ранее репликация на запасной сервер осуществлялась только в асинхронном режиме. Синхронную репликацию можно применять для отдельных транзакций, что позволяет комбинировать оба механизма, используя по умолчанию быстрый асинхронный механизм для обычных операций и надежный синхронный для наиболее критичных изменений;
- Произведена переработка оптимизаций для агрегатных функций min/max;
- Увеличены максимальные значения большинства настроек, связанных с установкой таймаутов;
- Устранено более ста ошибок, в том числе исправлена утечка памяти при работе с массивами в PL/Python, решена проблема с эффектом гонки (race condition) в pg_basebackup, налажена обработка неизвестных литералов в запросах UNION, устранены проблемы связанные с делением на ноль, приведены в непротиворечивый вид права доступа для COMMENT ON ROLE.
Источники
править
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.