См. Раздел 2.5.17 для получения обзора типов диапазонов.
Таблица 2.6.56 перечислены специализированные операторы, доступные для типов диапазонов. Таблица 2.6.57 перечислены специализированные операторы, доступные для мультидиапазонных типов. В дополнение к ним обычные операторы сравнения, показанные в Таблица 2.6.1 доступны для типов диапазонов и мультидиапазонов. Операторы сравнения выполняют упорядочивание сначала по нижним границам диапазонов, и только при их равенстве сравниваются верхние границы. Операторы мультидиапазонов сравнивают каждый составляющий диапазон до выявления первого несовпадения. Как правило, это не позволяет получить полезный общий порядок, однако данные операторы предусмотрены для обеспечения возможности создания уникальных индексов для диапазонов.
Таблица 2.6.56. Операторы диапазонов
Оператор Описание Примеры |
|---|
Содержит ли первый диапазон второй?
|
Содержит ли диапазон указанный элемент?
|
Содержится ли первый диапазон во втором?
|
Содержится ли элемент в указанном диапазоне?
|
Перекрываются ли диапазоны (имеют ли они общие элементы)?
|
Расположен ли первый диапазон строго левее второго?
|
Расположен ли первый диапазон строго правее второго?
|
Не выходит ли первый диапазон за правую границу второго?
|
Не выходит ли первый диапазон за левую границу второго?
|
Являются ли данные диапазоны смежными?
|
Вычисляет объединение двух диапазонов. Диапазоны должны перекрываться или быть
смежными, чтобы их объединение представляло собой единый диапазон (см. также
см.
|
Вычисляет пересечение двух диапазонов.
|
Вычисляет разность двух диапазонов. Второй диапазон не должен полностью входить в состав первого так, чтобы результат разности не являлся единым непрерывным диапазоном.
|
Таблица 2.6.57. Операторы мультидиапазонов
Оператор Описание Примеры |
|---|
Содержит ли первый мультидиапазон второй мультидиапазон?
|
Содержит ли мультидиапазон данный диапазон?
|
Содержит ли мультидиапазон данный элемент?
|
Содержит ли диапазон данный мультидиапазон?
|
Содержится ли первый мультидиапазон во втором мультидиапазоне?
|
Содержится ли мультидиапазон в диапазоне?
|
Содержится ли диапазон в мультидиапазоне?
|
Содержится ли элемент в мультидиапазоне?
|
Перекрываются ли мультидиапазоны (имеют ли они общие элементы)?
|
Перекрывается ли мультидиапазон с диапазоном?
|
Перекрывается ли диапазон с мультидиапазоном?
|
Располагается ли первый мультидиапазон строго слева от второго?
|
Располагается ли мультидиапазон строго слева от диапазона?
|
Располагается ли диапазон строго слева от мультидиапазона?
|
Располагается ли первый мультидиапазон строго справа от второго?
|
Располагается ли мультидиапазон строго справа от диапазона?
|
Располагается ли диапазон строго справа от мультидиапазона?
|
Не распространяется ли первый мультидиапазон вправо за пределы второго?
|
Не распространяется ли мультидиапазон вправо за пределы диапазона?
|
Не распространяется ли диапазон вправо за пределы мультидиапазона?
|
Не распространяется ли первый мультидиапазон влево за пределы второго?
|
Не распространяется ли мультидиапазон влево за пределы диапазона?
|
Не выходит ли диапазон за левую границу мультидиапазона?
|
Являются ли мультидиапазоны смежными?
|
Является ли мультидиапазон смежным с диапазоном?
|
Является ли диапазон смежным с мультидиапазоном?
|
Вычисляет объединение мультидиапазонов. Мультидиапазоны не обязательно должны перекрываться или быть смежными.
|
Вычисляет пересечение мультидиапазонов.
|
Вычисляет разность мультидиапазонов.
|
Операторы «left-of» (находится слева), «right-of» (находится справа) и «adjacent» (граничит) всегда возвращают значение false, если в операции участвует пустой диапазон или мультидиапазон; то есть пустой диапазон не считается находящимся ни до, ни после любого другого диапазона.
В остальных случаях пустые диапазоны и мультидиапазоны рассматриваются как аддитивный нейтральный элемент: результатом объединения любого значения с пустым является само это значение. Результатом вычитания пустого значения из любого значения является само это значение. Пустой мультидиапазон состоит из тех же точек, что и пустой диапазон. Каждый диапазон содержит в себе пустой диапазон. Каждый мультидиапазон содержит любое количество пустых диапазонов.
Операторы объединения и разности диапазонов завершаются ошибкой, если результирующий диапазон должен содержать два несвязных поддиапазона, так как такой диапазон не может быть представлен. Для операций объединения и разности существуют отдельные операторы, которые принимают параметры типа multirange и возвращают мультидиапазон; они не вызывают ошибок, даже если их аргументы являются несвязными. Таким образом, если необходимо выполнить операцию объединения или разности для диапазонов, которые могут оказаться несвязными, ошибок можно избежать путем предварительного приведения типов range к типам multirange.
Таблица 2.6.58 описывает функции, доступные для использования с типами диапазонов range. Таблица 2.6.59 описывает функции, доступные для использования с типами мультидиапазонов multirange.
Таблица 2.6.58. Функции для работы с диапазонами
Таблица 2.6.59. Функции мультидиапазонов
Функции, lower_inc, upper_inc,
lower_inf, и upper_inf
Все функции возвращают значение false для пустого диапазона или мультидиапазона.