cube. Тип данных для представления многомерных кубов#
В исходном дистрибутиве установлено по умолчанию: нет.
Связанные компоненты: отсутствуют.
Схема размещения:
ext.
Модуль реализует тип данных cube для представления многомерных кубов, а также предоставляет класс операторов индекса GiST для значений cube.
Индекс GiST для значений cube может применяться в целях поиска значений в выражениях со следующими операторами:
=;&&;@>в предложенияхWHERE;<@в предложенияхWHERE.
Доработка#
Доработка не проводилась.
Ограничения#
Ограничения отсутствуют.
Установка#
Модуль считается «доверенным», поэтому его могут устанавливать обычные пользователи, имеющие право CREATE в текущей базе данных:
CREATE EXTENSION cube SCHEMA ext;
Настройка#
Настройка не требуется.
Использование модуля#
В таблице показаны операторы, предназначенные специально для работы с типом cube:
Оператор |
Описание |
|---|---|
|
Кубы пересекаются? |
|
Первый куб содержит второй? |
|
Первый куб содержится во втором? |
|
Выдает |
|
Выдает |
|
Вычисляет евклидово расстояние между двумя кубами |
|
Вычисляет расстояние городских кварталов (метрику |
|
Вычисляет расстояние Чебышева (метрику |
Примеры использования:
эффективный поиск ближайшего соседа точки в трехмерном пространстве
(0.5, 0.5, 0.5):SELECT c FROM test ORDER BY c <-> cube(array[0.5,0.5,0.5]) LIMIT 1;использование оператора
~>может эффективно выдавать первые несколько значений, отсортированных по выбранной координате. Например, чтобы получить первые несколько кубов, упорядоченных по возрастанию первой координаты (левого нижнего угла), можно использовать следующий запрос:SELECT c FROM test ORDER BY c ~> 1 LIMIT 5;получение двумерных кубов, отсортированных по убыванию первой координаты правого верхнего угла:
SELECT c FROM test ORDER BY c ~> 3 DESC LIMIT 5;
Ссылки на документацию разработчика#
Дополнительно поставляемый модуль cube: https://www.postgresql.org/docs/15/cube.html.