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);
Совместимость
В стандарте SQL нет команды ALTER OPERATOR
.