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

Содержание

F.1. adminpack
F.2. aqo
F.3. auth_delay
F.4. auto_explain
F.5. bloom
F.6. btree_gin
F.7. btree_gist
F.8. chkpass
F.9. citext
F.10. spi
F.11. cube
F.12. dblink
F.13. dict_int
F.14. dict_xsyn
F.15. dump_stat
F.16. earthdistance
F.17. fasttrun
F.18. file_fdw
F.19. fulleq
F.20. fuzzystrmatch
F.21. hstore
F.22. Модули словарей Hunspell
F.23. intagg
F.24. intarray
F.25. isn
F.26. jsquery
F.27. lo
F.28. ltree
F.29. mchar
F.30. multimaster
F.31. online-analyze
F.32. pageinspect
F.33. passwordcheck
F.34. pg_buffercache
F.35. pgcrypto
F.36. pg_freespacemap
F.37. pg_hint_plan
F.38. pg_pathman
F.39. pg_prewarm
F.40. pgpro_scheduler
F.41. pg_query_state
F.42. pgrowlocks
F.43. pg_stat_statements
F.44. pgstattuple
F.45. pg_transfer
F.46. pg_trgm
F.47. pg_tsparser
F.48. pg_variables
F.49. pg_visibility
F.50. pg_wait_sampling
F.51. plantuner
F.52. postgres_fdw
F.53. referee
F.54. rum
F.55. seg
F.56. sepgsql
F.57. shared_ispell
F.58. sr_plan
F.59. sslinfo
F.60. tablefunc
F.61. tcn
F.62. test_decoding
F.63. tsearch2
F.64. tsm_system_rows
F.65. tsm_system_time
F.66. unaccent
F.67. uuid-ossp
F.68. xml2

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

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

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

make
make install

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

make check

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

make installcheck

, когда сервер Postgres Pro Enterprise будет работать.

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

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

CREATE EXTENSION имя_модуля;

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

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

Если ваша база данных была получена в результате выгрузки/перезагрузки данных PostgreSQL версии до 9.1, и вы ранее использовали версию этого модуля, рассчитанную на версию до 9.1, вместо этого вы должны выполнить:

CREATE EXTENSION имя_модуля FROM unpackaged;

При этом объекты этого модуля версии до 9.1 будут упакованы в соответствующий объект расширения. После этого обновления расширения будут осуществляться командой ALTER EXTENSION. За дополнительными сведениями об обновлении расширении обратитесь к Разделу 37.15.

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