×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.18. ALTER OPERATOR

6.1.18. ALTER OPERATOR

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

Синтаксис

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

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

ALTER OPERATOR name ( { left_type | NONE } , right_type )
    SET ( {  RESTRICT = { res_proc | NONE }
           | JOIN = { join_proc | NONE }
           | COMMUTATOR = com_op
           | NEGATOR = neg_op
           | HASHES
           | MERGES
          } [, ... ] )

Описание

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

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

Параметры

name

Имя (возможно, с указанием схемы) существующего оператора.

left_type

Тип данных левого операнда оператора; укажите NONE, если оператор не имеет левого операнда.

right_type

Тип данных правого операнда оператора.

new_owner

Новый владелец оператора.

new_schema

Новая схема для оператора.

res_proc

Функция оценки селективности по ограничению для данного оператора; укажите NONE для удаления существующей функции оценки селективности.

join_proc

Функция оценки селективности по соединению для данного оператора; укажите NONE для удаления существующей функции оценки селективности.

com_op

Коммутатор данного оператора. Может быть изменён, только если у оператора ещё нет коммутатора.

neg_op

Негатор данного оператора. Может быть изменён, только если у оператора ещё нет негатора.

HASHES

Указывает, что данный оператор может поддерживать хеш-соединение. Может быть только включён, но не выключен.

MERGES

Указывает, что данный оператор может поддерживать сортирующее соединение. Может быть только включён, но не выключен.

Примечания

Дополнительную информацию см. в разделах Раздел 5.1.14 и Раздел 5.1.15.

Поскольку коммутаторы существуют парами, где каждый является коммутатором для другого, команда ALTER OPERATOR SET COMMUTATOR также установит коммутатором для оператора com_op целевой оператор. Аналогично, команда ALTER OPERATOR SET NEGATOR также установит негатором для оператора neg_op целевой оператор. Следовательно, вы должны владеть как целевым оператором, так и оператором-коммутатором или негатором.

Примеры

Изменить владельца пользовательского оператора a @@ b для типа text:

ALTER OPERATOR @@ (text, text) OWNER TO joe;

Изменить функции оценки селективности по ограничению и по соединению для пользовательского оператора a && b для типа int[]:

ALTER OPERATOR && (int[], int[]) SET (RESTRICT = _int_contsel, JOIN = _int_contjoinsel);

Пометить оператор && как являющийся своим собственным коммутатором:

ALTER OPERATOR && (int[], int[]) SET (COMMUTATOR = &&);

Совместимость

В стандарте SQL нет оператора ALTER OPERATOR.

Смотрите также

CREATE OPERATOR, DROP OPERATOR
Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению