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.

См. также

CREATE OPERATOR, DROP OPERATOR