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.