Иллюстрированный самоучитель по PostgreSQL

CREATE OPERATOR

Определение нового оператора в базе данных.

Синтаксис:

CREATE OPERATOR оператор (PROCEDURE = функция
[, LEFTARG = тип1 ]
[, RIGHTARG = тип2 ]
[, COMMUTATOR = коммутатор ]
[, NEGATOR = инвертор ]
[, RESTRICT = функция_ограничения ]
[, JOIN = функция_объединения ]
[, HASHES ]
[, SORT1 = левая_сортировка ]
[. SORT2 = правая_сортировка ])

Параметры:

  • оператор. Последовательность символов – идентификатор нового оператора. Список допустимых символов приведен ниже.
  • функция. Функция, реализующая новый оператор.
  • тип1. Тип левого аргумента. Не используется с унарными операторами, которые всегда располагаются слева от своего операнда.
  • тип2. Тип правого аргумента. Не используется с унарными операторами, которые всегда располагаются справа от своего операнда.
  • коммутатор. Оператор коммутации, связываемый с новым оператором. Коммутатором называется другой существующий оператор, который выполняет коммутацию в процедуре, определяемой для нового оператора (например, интерпретацию левого аргумента как правого или наоборот).
  • инвертор. Оператор отрицания, связываемый с новым оператором. Инвертором называется другой существующий оператор, который выполняет логическую инверсию нового оператора. Инвертор определяется только в том случае, если результат применения ключевого слова NOT к новому оператору остается постоянным при одинаковых исходных данных.
  • функция_ограничения. Имя оценочной функции размера. Функция должна существовать и возвращать вещественное значение, а тип данных ее аргументов должен соответствовать определению оператора.
  • функция_объединения. Имя оценочной функции объединения. Функция должна существовать и возвращать вещественное значение, а тип данных ее аргументов должен соответствовать определению оператора.
  • HASHES. Ключевое слово HASHES означает, что новый оператор поддерживает хэширующие объединения.
  • левая_сортировка. Оператор левосторонней сортировки (если новый оператор поддерживает слияние).
  • правая_сортировка. Оператор правосторонней сортировки (если новый оператор поддерживает слияние).

Результаты:

CREATE. Это сообщение выдается при успешном создании нового оператора.

Описание

Команда CREATE OPERATOR предназначена для определения новых операторов. Пользователь PostgreSQL, создавший оператор, становится владельцем этого оператора в случае успешного создания.

Оператор может содержать до 31 символа из следующего списка:

+ – * / < > = ~! (а # % – & | – ? $

Кроме того, для символов оператора устанавливается ряд дополнительных ограничений:

  • знак доллара ($) может использоваться только в том случае, если оператор состоит из нескольких символов (оператор $ не разрешен);
  • комбинации -- и /* не могут присутствовать в операторе, поскольку они интерпретируются как начало комментария;
  • операторы, состоящие из нескольких символов, могут оканчиваться знаком + (плюс) или - (дефис) только в том случае, если содержат по крайней мере один из следующих символов:
-! @ # % π & |?? $

Благодаря наличию этих ограничений PostgreSQL может обрабатывать синтаксически правильные запросы, в которых лексемы не нужно разделять дополнительными пробелами.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.