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