Перейти к содержанию

Вышла первая альфа-версия 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.

Источники[править]


Creative Commons
Creative Commons
Эта статья содержит материалы из статьи «Вышла первая альфа-версия PostgreSQL 9.1», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии[править]

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.