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.