ALTER OPERATOR#

ALTER OPERATOR

ALTER OPERATOR

ALTER OPERATOR — изменить определение оператора

Синтаксис

ALTER OPERATOR name ( { left_type | NONE } , right_type )
    OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }

ALTER OPERATOR name ( { left_type | NONE } , right_type )
    SET SCHEMA new_schema

ALTER OPERATOR name ( { left_type | NONE } , right_type )
    SET ( {  RESTRICT = { res_proc | NONE }
           | JOIN = { join_proc | NONE }
         } [, ... ] )

Описание

ALTER OPERATOR изменяет определение оператора.

Вы должны быть владельцем оператора, чтобы использовать ALTER OPERATOR. Чтобы изменить владельца, вы также должны быть прямым или косвенным членом новой владеющей роли, и эта роль должна иметь привилегию CREATE на схему оператора. (Эти ограничения обеспечивают, что изменение владельца не делает ничего, что вы не могли бы сделать, удалив и создав оператор заново. Однако суперпользователь может изменить владельца любого оператора в любом случае).

Параметры

name

Имя (опционально с указанием схемы) существующего оператора.

left_type

Тип данных левого операнда оператора; напишите NONE, если у оператора нет левого операнда.

right_type

Тип данных правого операнда оператора.

new_owner

Новый владелец оператора.

new_schema

Новая схема для оператора.

res_proc

Функция оценки селективности ограничения для этого оператора; напишите NONE, чтобы удалить существующую функцию оценки селективности.

join_proc

Функция оценки селективности соединения для этого оператора; напишите NONE, чтобы удалить существующую функцию оценки селективности.

Примеры

Измените владельца пользовательского оператора a @@ b для типа text:

ALTER OPERATOR @@ (text, text) OWNER TO joe;

Измените функции ограничения и оценки селективности для пользовательского оператора a && b типа int[]:

ALTER OPERATOR && (_int4, _int4) SET (RESTRICT = _int_contsel, JOIN = _int_contjoinsel);

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

В стандарте SQL нет оператора ALTER OPERATOR.