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