ALTER EXTENSION
ALTER EXTENSION — изменить определение расширения
Синтаксис
ALTER EXTENSIONимяUPDATE [ TOновая_версия] ALTER EXTENSIONимяSET SCHEMAновая_схемаALTER EXTENSIONимяADDэлемент_объектALTER EXTENSIONимяDROPэлемент_объектЗдесьэлемент_объект: ACCESS METHODимя_объекта| AGGREGATEимя_агрегатной_функции(сигнатура_агр_функции) | CAST (исходный_типASцелевой_тип) | COLLATIONимя_объекта| CONVERSIONимя_объекта| DOMAINимя_объекта| EVENT TRIGGERимя_объекта| FOREIGN DATA WRAPPERимя_объекта| FOREIGN TABLEимя_объекта| FUNCTIONимя_функции[ ( [ [режим_аргумента] [имя_аргумента]тип_аргумента[, ...] ] ) ] | MATERIALIZED VIEWимя_объекта| OPERATORимя_оператора(тип_слева,тип_справа) | OPERATOR CLASSимя_объектаUSINGиндексный_метод| OPERATOR FAMILYимя_объектаUSINGиндексный_метод| [ PROCEDURAL ] LANGUAGEимя_объекта| PROCEDUREимя_процедуры[ ( [ [режим_аргумента] [имя_аргумента]тип_аргумента[, ...] ] ) ] | ROUTINEимя_подпрограммы[ ( [ [режим_аргумента] [имя_аргумента]тип_аргумента[, ...] ] ) ] | SCHEMAимя_объекта| SEQUENCEимя_объекта| SERVERимя_объекта| TABLEимя_объекта| TEXT SEARCH CONFIGURATIONимя_объекта| TEXT SEARCH DICTIONARYимя_объекта| TEXT SEARCH PARSERимя_объекта| TEXT SEARCH TEMPLATEимя_объекта| TRANSFORM FORимя_типаLANGUAGEимя_языка| TYPEимя_объекта| VIEWимя_объектаисигнатура_агр_функции: * | [режим_аргумента] [имя_аргумента]тип_аргумента[ , ... ] | [ [режим_аргумента] [имя_аргумента]тип_аргумента[ , ... ] ] ORDER BY [режим_аргумента] [имя_аргумента]тип_аргумента[ , ... ]
Описание
ALTER EXTENSION изменяет определение установленного расширения. Эта команда имеет несколько подвидов:
UPDATEЭта форма обновляет версию расширения. Расширение должно предоставлять подходящий скрипт обновления (или набор скриптов), который может сменить текущую установленную версию на требуемую.
SET SCHEMAЭта форма переносит объекты расширения в другую схему. Чтобы эта команда выполнилась успешно, расширение должно быть перемещаемым.
ADDэлемент_объектЭта форма добавляет существующий объект в расширение. В основном это применяется в скриптах обновления расширений. Добавленный объект затем будет считаться частью расширения, и удалить его можно будет, только удалив расширение.
DROPэлемент_объектЭта форма удаляет из расширения включённый в него объект. В основном это применяется в скриптах обновления расширений. Сам объект при этом не уничтожается, а только отделяется от расширения.
Подробнее эти операции описаны в Разделе 36.17.
Чтобы выполнить команду ALTER EXTENSION, необходимо быть владельцем данного расширения. Для форм ADD/DROP требуется также быть владельцем добавляемого/удаляемого объекта.
Параметры
имяИмя установленного расширения.
новая_версияЗапрашиваемая новая версия расширения. Её можно записать в виде идентификатора или строкового значения. Если она не указана,
ALTER EXTENSION UPDATEпытается выполнить обновление до версии, указанной в качестве версии по умолчанию в управляющем файле расширения.новая_схемаНовая схема расширения.
имя_объектаимя_агрегатной_функцииимя_функцииимя_оператораимя_процедурыимя_подпрограммыИмя объекта, добавляемого или удаляемого из расширения. Имена таблиц, агрегатных функций, доменов, сторонних таблиц, функций, операторов, классов операторов, семейств операторов, процедур, подпрограмм, последовательностей, объектов текстового поиска, типов и представлений можно дополнить именем схемы.
исходный_типИмя исходного типа данных для приведения.
целевой_типИмя целевого типа данных для приведения.
режим_аргументаРежим аргумента функции, процедуры или агрегата:
IN,OUT,INOUTилиVARIADIC. По умолчанию подразумеваетсяIN. Заметьте, чтоALTER EXTENSIONне учитывает аргументыOUT, так как для идентификации функции нужны только типы входных аргументов. Поэтому достаточно перечислить только аргументыIN,INOUTиVARIADIC.имя_аргументаИмя аргумента функции, процедуры или агрегата. Заметьте, что на самом деле
ALTER EXTENSIONне обращает внимание на имена аргументов, так как для однозначной идентификации функции достаточно только типов аргументов.тип_аргументаТип данных аргумента функции, процедуры или агрегата.
тип_слеватип_справаТип данных аргументов оператора (возможно, дополненный именем схемы). В случае отсутствия аргумента префиксного оператора укажите вместо типа
NONE.PROCEDURALЭто слово не несёт смысловой нагрузки.
имя_типаИмя типа данных, для которого предназначена трансформация.
имя_языкаИмя языка, для которого предназначена трансформация.
Примеры
Обновление расширения 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 является расширением Postgres Pro.