CREATE OPERATOR FAMILY
Определяет новое семейство операторов.
Синтаксис
CREATE OPERATOR FAMILY <name> USING <index_method>
Описание
Команда CREATE OPERATOR FAMILY создает новое семейство операторов.
Семейство операторов определяет коллекцию связанных классов операторов и, возможно, некоторых дополнительных операторов и вспомогательных функций, которые совместимы с этими классами операторов, но не являются необходимыми для работы какого-либо отдельного индекса.
Операторы и функции, которые необходимы для индексов, следует группировать в соответствующем классе операторов, а не оставлять их "свободными" (loose) в семействе операторов.
Обычно операторы для одного типа данных привязываются к классам операторов, тогда как операторы для разных типов данных могут быть "свободными" в семействе операторов, содержащем классы операторов для обоих типов данных.
Изначально новое семейство операторов пустое.
Его следует наполнить, выполнив последующие команды CREATE OPERATOR CLASS, чтобы добавить входящие в него классы операторов, и при необходимости команды ALTER OPERATOR FAMILY, чтобы добавить "свободные" операторы и соответствующие им вспомогательные функции.
Если указано имя схемы, семейство операторов создается в указанной схеме. В противном случае оно создается в текущей схеме. Два семейства операторов в одной и той же схеме могут иметь одинаковое имя только в том случае, если они предназначены для разных методов индексирования.
Пользователь, создающий семейство операторов, становится его владельцем. В настоящее время создающий пользователь должен быть суперпользователем. Это ограничение введено потому, что ошибочное определение семейства операторов может привести к нарушению работы или даже аварийной остановке сервера.
Параметры
| Параметр | Описание |
|---|---|
name |
Имя семейства операторов, которое нужно определить (опционально указанное со схемой) |
index_method |
Имя метода индексирования, для которого предназначено это семейство операторов |
Совместимость
CREATE OPERATOR FAMILY — расширение Greengage DB.
В стандарте SQL оператор CREATE OPERATOR FAMILY отсутствует.