ALTER OPERATOR
ALTER OPERATOR — изменить определение оператора
Синтаксис
ALTER OPERATOR имя ( { тип_слева | NONE } , тип_справа )
OWNER TO { новый_владелец | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER OPERATOR имя ( { тип_слева | NONE } , тип_справа )
SET SCHEMA новая_схема
ALTER OPERATOR имя ( { тип_слева | NONE } , тип_справа )
SET ( { RESTRICT = { процедура_ограничения | NONE }
| JOIN = { процедура_соединения | NONE }
} [, ... ] )
Описание
Команда ALTER OPERATOR изменяет определение оператора.
Чтобы использовать команду ALTER OPERATOR, нужно быть владельцем соответствующего
оператора. Для смены владельца нужно иметь возможность выполнять SET ROLE для
новой роли-владельца, и эта роль должна иметь право CREATE в схеме оператора.
(Эти ограничения направлены на то, чтобы при смене владельца не происходило
ничего, что нельзя было бы сделать путем удаления и повторного создания оператора.
Однако суперпользователь все равно может сменить владельца любого оператора.)
Параметры
имя
Имя существующего оператора (может быть дополнено схемой).
тип_слева
Тип данных левого операнда оператора; если у оператора нет левого операнда, напишите NONE.
тип_справа
Тип данных правого операнда оператора.
новый_владелец
Новый владелец оператора.
новая_схема
Новая схема для оператора.
процедура_ограничения
Функция оценки избирательности ограничения для этого оператора; чтобы удалить существующую функцию оценки избирательности, напишите NONE.
процедура_соединения
Функция оценки избирательности соединения для этого оператора; чтобы удалить существующую функцию оценки избирательности, напишите 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.