ALTER OPERATOR#
ALTER OPERATOR
ALTER OPERATOR — изменить определение оператора
Синтаксис
ALTER OPERATORname
( {left_type
| NONE } ,right_type
) OWNER TO {new_owner
| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER OPERATORname
( {left_type
| NONE } ,right_type
) SET SCHEMAnew_schema
ALTER OPERATORname
( {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
.