ALTER EXTENSION

Изменение определения расширения, зарегистрированного в базе данных YMatrix.

Синтаксис

ALTER EXTENSION name UPDATE [ TO new_version ]
ALTER EXTENSION name SET SCHEMA new_schema
ALTER EXTENSION name ADD member_object
ALTER EXTENSION name DROP member_object

where member_object is:

  ACCESS METHOD object_name |
  AGGREGATE aggregate_name ( aggregate_signature ) |
  CAST (source_type AS target_type) |
  COLLATION object_name |
  CONVERSION object_name |
  DOMAIN object_name |
  EVENT TRIGGER object_name |
  FOREIGN DATA WRAPPER object_name |
  FOREIGN TABLE object_name |
  FUNCTION function_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) |
  MATERIALIZED VIEW object_name |
  OPERATOR operator_name (left_type, right_type) |
  OPERATOR CLASS object_name USING index_method |
  OPERATOR FAMILY object_name USING index_method |
  [ PROCEDURAL ] LANGUAGE object_name |
  SCHEMA object_name |
  SEQUENCE object_name |
  SERVER object_name |
  TABLE object_name |
  TEXT SEARCH CONFIGURATION object_name |
  TEXT SEARCH DICTIONARY object_name |
  TEXT SEARCH PARSER object_name |
  TEXT SEARCH TEMPLATE object_name |
  TRANSFORM FOR type_name LANGUAGE lang_name |
  TYPE object_name |
  VIEW object_name

and aggregate_signature is:

* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]

Описание

ALTER EXTENSION изменяет определение установленного расширения. Существует несколько форм команды:

UPDATE

  • Эта форма обновляет расширение до более новой версии. Расширение должно предоставлять подходящий скрипт обновления (или серию скриптов), способный преобразовать текущую установленную версию в требуемую.

SET SCHEMA

  • Эта форма перемещает объекты расширения в другую схему. Расширение должно быть переносимым (relocatable).

ADD member_object

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

DROP member_object

  • Эта форма удаляет объект из состава расширения. В основном используется в скриптах обновления расширений. Объект может быть удалён только после отмены его привязки к расширению.

Для использования команды ALTER EXTENSION пользователь должен быть владельцем расширения. Формы ADD и DROP также требуют владения объектами, которые необходимо добавить или удалить.

Параметры

name

  • Имя расширения, подлежащего изменению.

new_version

  • Новая версия расширения. new_version — это идентификатор или строковый литерал. Если не указано, команда пытается обновить расширение до версии по умолчанию, указанной в файле управления расширением.

new_schema

  • Новая схема для размещения объектов расширения.

object_name

aggregate_name

function_name

operator_name

  • Имя объекта, который нужно добавить или удалить из расширения. Имена таблиц, агрегатов, доменов, внешних таблиц, функций, операторов, классов операторов, семейств операторов, последовательностей, объектов полнотекстового поиска, типов и представлений могут указываться с указанием схемы.

source_type

  • Имя исходного типа данных, подлежащего преобразованию.

target_type

  • Имя целевого типа данных, в который требуется преобразование.

argmode

  • Режим параметра функции или агрегата: IN, OUT, INOUT или VARIADIC. По умолчанию — IN.
    Команда игнорирует параметры OUT. Для идентификации функции достаточно указать только входные параметры. Поэтому следует перечислять только параметры IN, INOUT и VARIADIC.

argname

  • Имя параметра функции или агрегата.
    Команда игнорирует имена параметров, поскольку идентификация функции основывается на типах её параметров.

argtype

  • Тип данных параметра функции или агрегата.

left_type

right_type

  • Тип данных параметра оператора (может указываться с именем схемы). Для префиксного или постфиксного оператора отсутствующий параметр указывается как NONE.

PROCEDURAL

  • Устаревшее ключевое слово.

type_name

  • Имя типа данных преобразования.

lang_name

  • Имя языка, к которому относится преобразование.

Примеры

Обновление расширения hstore до версии 2.0:

ALTER EXTENSION hstore UPDATE TO '2.0';

Перемещение расширения hstore в схему utils:

ALTER EXTENSION hstore SET SCHEMA utils;

Добавление существующей функции в расширение hstore:

ALTER EXTENSION hstore ADD FUNCTION populate_record(anyelement, hstore);

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

ALTER EXTENSION является расширением, специфичным для YMatrix.

См. также

CREATE EXTENSION , DROP EXTENSION