ALTER OPERATOR

Изменяет определение оператора.

Синтаксис

ALTER OPERATOR <name> ( {<left_type> | NONE} , {<right_type> | NONE} ) 
   OWNER TO { <new_owner> | CURRENT_USER | SESSION_USER }

ALTER OPERATOR <name> ( {<left_type> | NONE} , {<right_type> | NONE} ) 
    SET SCHEMA <new_schema>

ALTER OPERATOR name ( { <left_type> | NONE } , { <right_type> | NONE } )
    SET ( {  RESTRICT = { <res_proc> | NONE }
           | JOIN = { <join_proc> | NONE }
         } [, ... ] )

Описание

ALTER OPERATOR изменяет определение оператора.

Чтобы использовать ALTER OPERATOR, вы должны быть владельцем оператора. Чтобы изменить владельца, вы также должны быть прямым или косвенным членом новой роли-владельца, и эта роль должна иметь привилегию CREATE в схеме оператора. (Эти ограничения обеспечивают то, что изменение владельца не позволяет сделать ничего такого, что нельзя было бы сделать путём удаления и повторного создания оператора. Однако суперпользователь может изменить владельца любого оператора.)

Параметры

  • name
    • Имя существующего оператора (при необходимости с указанием схемы).
  • left_type
    • Тип данных левого операнда оператора; укажите NONE, если у оператора нет левого операнда.
  • right_type
    • Тип данных правого операнда оператора; укажите NONE, если у оператора нет правого операнда.
  • new_owner
    • Новый владелец оператора.
  • new_schema
    • Новая схема для оператора.
  • res_proc
    • Функция оценки селективности при ограничении для данного оператора; укажите NONE, чтобы удалить существующую функцию оценки селективности.
  • join_proc
    • Функция оценки селективности при соединении для данного оператора; укажите 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.