Перейти к основному содержимому

ALTER OPERATOR

примечание

Эта страница переведена при помощи нейросети GigaChat.

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 изменяет определение оператора.

Чтобы выполнить эту команду, необходимо быть владельцем оператора. Изменить владельца можно только при условии, что текущий пользователь является прямым или косвенным членом новой роли владельца, а сама роль обладает привилегией 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.

Смотрите также​

CREATE OPERATOR, DROP OPERATOR