ALTER EXTENSION — изменение определения расширения
ALTER EXTENSIONnameUPDATE [ TOnew_version] ALTER EXTENSIONnameSET SCHEMAnew_schemaALTER EXTENSIONnameADDmember_objectALTER EXTENSIONnameDROPmember_objectгдеmember_objectможет быть: ACCESS METHODobject_name| AGGREGATEaggregate_name(aggregate_signature) | CAST (source_typeAStarget_type) | COLLATIONobject_name| CONVERSIONobject_name| DOMAINobject_name| EVENT TRIGGERobject_name| FOREIGN DATA WRAPPERobject_name| FOREIGN TABLEobject_name| FUNCTIONfunction_name[ ( [ [argmode] [argname]argtype[, ...] ] ) ] | MATERIALIZED VIEWobject_name| OPERATORoperator_name(left_type,right_type) | OPERATOR CLASSobject_nameUSINGindex_method| OPERATOR FAMILYobject_nameUSINGindex_method| [ PROCEDURAL ] LANGUAGEobject_name| PROCEDUREprocedure_name[ ( [ [argmode] [argname]argtype[, ...] ] ) ] | ROUTINEroutine_name[ ( [ [argmode] [argname]argtype[, ...] ] ) ] | SCHEMAobject_name| SEQUENCEobject_name| SERVERobject_name| TABLEobject_name| TEXT SEARCH CONFIGURATIONobject_name| TEXT SEARCH DICTIONARYobject_name| TEXT SEARCH PARSERobject_name| TEXT SEARCH TEMPLATEobject_name| TRANSFORM FORtype_nameLANGUAGElang_name| TYPEobject_name| VIEWobject_nameиaggregate_signatureимеет вид: * | [argmode] [argname]argtype[ , ... ] | [ [argmode] [argname]argtype[ , ... ] ] ORDER BY [argmode] [argname]argtype[ , ... ]
Команда ALTER EXTENSION изменяет определение установленного
расширения. Существует несколько подформ:
UPDATEЭта форма обновляет расширение до более новой версии. Расширение должно предоставлять соответствующий скрипт обновления (или серию скриптов), который может преобразовать текущую установленную версию в запрашиваемую.
SET SCHEMAЭта форма перемещает объекты расширения в другую схему. Расширение должно быть перемещаемым для успешного выполнения этой команды.
ADD member_objectЭта форма добавляет существующий объект к расширению. В основном это полезно в скриптах обновления расширений. Объект впоследствии будет рассматриваться как член расширения; в частности, его можно будет удалить только путём удаления самого расширения.
DROP member_objectЭта форма удаляет объект-член из расширения. В основном это полезно в скриптах обновления расширений. Сам объект не удаляется, а только отвязывается от расширения.
Подробнее об этих операциях см. Раздел 5.1.17.
Чтобы использовать ALTER EXTENSION, вы должны быть владельцем расширения.
Формам ADD/DROP также требуется право владения
добавляемым/удаляемым объектом.
nameИмя установленного расширения.
new_version
Желаемая новая версия расширения. Её можно записать либо как идентификатор,
либо как строковый литерал. Если не указана,
команда ALTER EXTENSION UPDATE пытается обновиться до версии,
указанной как версия по умолчанию в управляющем файле расширения.
new_schemaНовая схема для расширения.
object_nameaggregate_namefunction_nameoperator_nameprocedure_nameroutine_nameИмя объекта, который нужно добавить к расширению или удалить из него. Имена таблиц, агрегатных функций, доменов, внешних таблиц, функций, операторов, классов операторов, семейств операторов, процедур, подпрограмм, последовательностей, объектов текстового поиска, типов и представлений могут содержать указание схемы.
source_typeИмя исходного типа данных преобразования CAST.
target_typeИмя целевого типа данных преобразования CAST.
argmode
Режим аргумента функции, процедуры или агрегатной функции:
IN, OUT,
INOUT или VARIADIC.
Если опущен, по умолчанию используется IN.
Обратите внимание, что ALTER EXTENSION фактически не учитывает
аргументы OUT, поскольку для определения идентификатора функции
нужны только входные аргументы.
Поэтому достаточно перечислить аргументы IN, INOUT
и VARIADIC.
argname
Имя аргумента функции, процедуры или агрегатной функции.
Обратите внимание, что ALTER EXTENSION фактически не учитывает
имена аргументов, поскольку для определения идентификатора функции
нужны только типы данных аргументов.
argtypeТип данных аргумента функции, процедуры или агрегатной функции.
left_typeright_type
Тип(ы) данных аргументов оператора (опционально
с указанием схемы). Для отсутствующего аргумента префиксного оператора
укажите NONE.
PROCEDURALЭто пустое слово.
type_nameИмя типа данных преобразования TRANSFORM.
lang_nameИмя языка преобразования TRANSFORM.
Для обновления расширения 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 является расширением
Digital Q.DataBase.