SQLсервер в Linux -самостоятельное освоение пакета

         

Создание оператора



Создание оператора

Новые операторы создаются командой SQL CREATE OPERATOR. Синтаксис команды

CREATE OPERATOR:

CREATE OPERATOR оператор ( PROCEDURE = функция

[. LEFTARG = тип! ]

[. RIGHTARG = тип2 ]

[. COMMUTATOR = коммутатор ]

[. NEGATOR = инвертор ]

[. RESTRICT = функция ограничения ]

[. JOIN = функция_обьединения ]

[. HASHES ]

[. SORT1 = левдя_сортировкд ]

[. SORT2 = правая_сортировка ] )

В этом определении оператор — символ нового оператора, а функция — имя функции, вызываемой этим оператором. Остальные секции не обязательны, хотя в определении должна присутствовать хотя бы одна из секций LEFTARG или RIGHTARG. Оператор может состоять из следующих символов:

*-*/<>=~!@#*Л&|-?$

Примечание 2
Примечание 2

За дополнительной информацией об остальных секциях команды CREATE OPERATOR и ограничениях на символы операторов обращайтесь к документации.

Если в команде CREATE OPERATOR указан только тип данных LEFTARG, оператор работает только с левым операндом (константой или идентификатором). И наоборот, если указан только тип RIGHTARG, оператор работает только с правым операндом. При указании обоих типов данных, LEFTARG и RIGHTARG, оператор работает с обоими операндами, левым и правым.

Хорошим примером встроенного оператора, использующего только левый операнд, является оператор факториала (!), а оператор сложения работает с обоими операндами. Количество аргументов функции, указанной в команде CREATE OPERATOR, должно соответствовать использованию ключевых слов LEFTARG и RIGHTARG (один или два аргумента). Более того, типы аргументов функции должны соответствовать типам, указанным в команде CREATE OPERATOR.

В листинге 7.53 создается оператор !#, левый операнд которого передается функции is_zero() (см. листинг 7.49). Следовательно, обозначение х !# эквивалентно вызову функции is_zero(x).



Содержание раздела