Расширения

Содержание

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

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

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

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

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

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

В установке по умолчанию доверенными являются следующие расширения: btree_gin, btree_gist, citext, cube, dict_int, fuzzystrmatch, hstore, intarray, isn, lo, ltree, pgcrypto, pg_trgm, seg, tablefunc, tcn, tsm_system_rows, tsm_system_time, unaccent, uuid-ossp.

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

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