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. Чтобы изменить владельца, вы должны иметь возможность SET ROLE на новую роль владельца, и эта роль должна иметь привилегию 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.