Приложение F. Дополнительно поставляемые модули и расширения

Содержание

F.1. adminpack — набор инструментов поддержки pgAdmin
F.2. amcheck — модуль с инструментами, проверяющими целостность таблиц и индексов
F.3. auth_delay — задержка при ошибке аутентификации
F.4. auto_explain — протоколирование планов выполнения медленных запросов
F.5. basebackup_to_shell — пример создания получателей резервной копии для модуля pg_basebackup
F.6. basic_archive — пример модуля архивирования WAL
F.7. bloom — индексный метод доступа, основанный на фильтрах Блума
F.8. btree_gin — классы операторов GIN с поведением B-дерева
F.9. btree_gist — классы операторов GiST с поведением B-дерева
F.10. citext — тип данных для строк, нечувствительных к регистру
F.11. cube — тип данных для представления многомерных кубов
F.12. dblink — подключение к другим базам данных PostgreSQL
F.13. dict_int — пример словаря текстового поиска для целых чисел
F.14. dict_xsyn — пример словаря текстового поиска синонимов
F.15. earthdistance — вычисление расстояний между точками на Земле
F.16. file_fdw — обращение к файлам данных в файловой системе сервера
F.17. fuzzystrmatch — вычисление схожести и расстояния между строками
F.18. hstore — тип данных hstore для хранения пар ключ-значение
F.19. intagg — агрегатор и нумератор целых чисел
F.20. intarray — работа с массивами целых чисел
F.21. isn — типы данных для международных стандартов нумерации (ISBN, EAN, UPC и т. д.)
F.22. lo — управление большими объектами
F.23. ltree — тип данных для представления меток данных в иерархической древовидной структуре
F.24. old_snapshot — чтение информации, используемой в реализации old_snapshot_threshold
F.25. pageinspect — низкоуровневое исследование страниц баз данных
F.26. passwordcheck — проверка надёжности пароля
F.27. pg_buffercache — информация о состоянии буферного кеша PostgreSQL
F.28. pgcrypto — криптографические функции
F.29. pg_freespacemap — просмотр карты свободного пространства
F.30. pg_prewarm — предварительная загрузка данных отношений в кеш буферов
F.31. pgrowlocks — отображение информации о блокировке строк таблицы
F.32. pg_stat_statements — отслеживание статистики планирования и выполнения SQL-операторов
F.33. pgstattuple — получение статистики на уровне кортежей
F.34. pg_surgery — проведение операций низкого уровня с данными отношений
F.35. pg_trgm — поддержка определения схожести текста на основе триграмм
F.36. pg_visibility — информация из карты видимости и вспомогательные функции
F.37. pg_walinspect — просмотр журнала предзаписи на низком уровне
F.38. postgres_fdw — обращение к данным, находящимся на внешних серверах PostgreSQL
F.39. seg — тип данных для отрезков или интервалов чисел с плавающей точкой
F.40. sepgsql — проверка безопасности на базе политик SELinux для мандатного управления доступом (MAC, Mandatory Access Control) с метками
F.41. spi — особенности/примеры использования интерфейса программирования сервера
F.42. sslinfo — получение информации об SSL-сертификате клиента
F.43. tablefunc — функции, возвращающие таблицы (crosstab и не только)
F.44. tcn — триггерная функция, сообщающая приёмникам уведомлений об изменениях в содержимом таблицы
F.45. test_decoding — пример модуля на базе SQL для логического декодирования WAL
F.46. tsm_system_rows — метод извлечения выборки SYSTEM_ROWS для TABLESAMPLE
F.47. tsm_system_time — метод извлечения выборки SYSTEM_TIME для TABLESAMPLE
F.48. unaccent — словарь текстового поиска, который убирает диакритические знаки
F.49. uuid-ossp — генератор UUID
F.50. xml2 — функции для выполнения запросов XPath и преобразований XSLT

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

В этом приложении описываются расширения и другие подключаемые серверные библиотеки модулей, включённые в contrib. В Приложении G описываются вспомогательные программы.

При сборке сервера из дистрибутивного исходного кода эти дополнительные компоненты собираются, только если выбрана цель «world» (см. Шаг 2). Вы можете собрать и установить их отдельно, выполнив:

make
make install

в каталоге contrib в настроенном дереве исходного кода; либо собрать и установить только один выбранный модуль, проделав то же самое в его подкаталоге. Для многих модулей имеются регрессионные тесты, которые можно выполнить, запустив:

make check

перед установкой или

make installcheck

, когда сервер PostgreSQL будет работать.

Если вы используете готовую собранную версию PostgreSQL, эти компоненты обычно поставляются в виде отдельного подпакета, например postgresql-contrib.

Многие компоненты предоставляют дополнительные пользовательские функции, операторы и типы, упакованные в расширения. Чтобы использовать одно из таких расширений, когда его исполняемый код установлен, необходимо зарегистрировать новые объекты SQL в СУБД. Для этого нужно воспользоваться командой CREATE EXTENSION. В чистой базе данных можно просто выполнить:

CREATE EXTENSION имя_расширения;

При этом новые объекты SQL будут зарегистрированы только в текущей базе данных, так что эту команду нужно выполнять в каждой базе данных, в которой планируется использовать функциональность этого расширения. Также можно запустить его в базе данных template1, чтобы установленное расширение копировалось во все впоследствии создаваемые базы по умолчанию.

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

Следующие расширения являются доверенными при установке по умолчанию:

btree_ginfuzzystrmatchltreetcn
btree_gisthstorepgcryptotsm_system_rows
citextintarraypg_trgmtsm_system_time
cubeisnsegunaccent
dict_intlotablefuncuuid-ossp

Многие расширения позволяют устанавливать свои объекты в схему по выбору. Для этого нужно добавить SCHEMA имя_схемы в команду CREATE EXTENSION. По умолчанию объекты устанавливаются в текущую схему для создаваемых объектов, которой по умолчанию становится public.

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