CREATE EXTENSION

Создание расширения.

Синтаксис

CREATE EXTENSION [ IF NOT EXISTS ] extension_name
  [ WITH ] [ SCHEMA schema_name ]
           [ VERSION version ]
           [ FROM old_version ]
           [ CASCADE ]

Описание

Команда CREATE EXTENSION загружает новое расширение в текущую базу данных. Расширения с одинаковыми именами не могут быть загружены повторно.

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

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

Параметры

IF NOT EXISTS

  • Если расширение с таким именем уже существует, не выдавать ошибку. В этом случае будет выдано информационное сообщение. Гарантия того, что существующее расширение аналогично устанавливаемому, не предоставляется.

extension_name

  • Имя устанавливаемого расширения. Это имя должно быть уникальным в пределах базы данных. Создание расширения выполняется на основе данных из файла управления расширением SHAREDIR/extension/extension_name.control.
    SHAREDIR — это каталог общих данных, например usr/local/matrixdb/share/postgresql (путь YMatrix 4.X) или /opt/ymatrix/matrixdb5/share/postgresql (путь YMatrix 5.X). Директорию можно определить с помощью команды pg_config --sharedir.

SCHEMA schema_name

  • Имя схемы, в которую будут установлены объекты расширения. Предполагается, что расширение допускает размещение своих компонентов в указанной схеме. Указанная схема должна уже существовать. Если параметр не задан, а в файле управления расширением не указана схема, объекты создаются в текущей схеме по умолчанию.
    Если в файле управления расширения указан параметр schema, то переопределить его с помощью предложения SCHEMA невозможно. Обычно, если указано предложение SCHEMA и оно конфликтует с параметром schema расширения, возникает ошибка. Однако, если также указано предложение CASCADE, имя schema_name в случае конфликта игнорируется. Указанное schema_name используется для установки всех зависимых расширений, которые не определяют схему в своих файлах управления. Само расширение не принадлежит ни к одной схеме. Расширения имеют неполные имена, которые должны быть уникальными в базе данных. Однако объекты, входящие в расширение, могут находиться в схеме.

VERSION version

  • Версия устанавливаемого расширения. Может быть указана как идентификатор или строковый литерал. По умолчанию используется версия, указанная в файле управления расширением.

FROM old_version

  • Указывайте параметр FROM old_version только тогда, когда вы пытаетесь установить расширение, заменяющее ранее существовавшее расширение, которое не было оформлено как набор объектов в виде расширения. При указании этого параметра команда CREATE EXTENSION запускает альтернативный скрипт установки, который «включает» уже существующие объекты в состав расширения вместо создания новых. Убедитесь, что предложение SCHEMA указывает на схему, содержащую эти заранее существующие объекты.
    Значение old_version определяется автором расширения и может различаться, если возможно обновление нескольких старых версий модулей до расширения. Для стандартных дополнительных модулей, поставляемых PostgreSQL до версии 9.1, при переходе к расширениям следует указывать значение unpackaged для old_version.

CASCADE

  • Автоматически устанавливать связанные расширения, которые ещё не установлены. Рекурсивно проверяются зависимости, и все зависимые расширения также будут автоматически установлены. Если указано предложение SCHEMA, указанная схема применяется к основному расширению и всем зависимым расширениям, которые устанавливаются. Другие параметры не распространяются на автоматически устанавливаемые зависимые расширения. В частности, при установке зависимых расширений всегда выбирается версия по умолчанию.

Примечания

Расширения, доступные для загрузки, можно определить по системным представлениям pg_available_extensions или pg_available_extension_versions.

Перед тем как загружать расширение в базу данных с помощью команды CREATE EXTENSION, необходимо установить соответствующие файлы расширения, включая файлы управления расширением и хотя бы один SQL-скрипт. Файлы поддержки должны быть установлены в одинаковых путях на всех хостах кластера MatrixDB.

Совместимость

CREATE EXTENSION является расширением YMatrix.

Смотрите также

ALTER EXTENSION , DROP EXTENSION