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 может только владелец соответствующего оператора. Чтобы сменить владельца, необходимо быть непосредственным или опосредованным членом новой роли-владельца, а эта роль должна иметь право 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);
Совместимость
Команда ALTER OPERATOR отсутствует в стандарте SQL.