intarray. Функции и оп ераторы для работы с массивами целых чисел без NULL
В исходном дистрибутиве установлено по умолчанию: нет.
Связанные компоненты: отсутствуют.
Схема размещения:
ext
.
Описание
Модуль предоставляет несколько полезных функций и операторов для работы с одномерными целочисленными массивами (1-D integer arrays
). Если в массиве присутствует значение NULL
, операция выдаст ошибку. Также поддерживается поиск по индексу для ряда операторов.
Модуль поддерживает проверку равенства массивов, а также индексы для операторов:
&&
– пересечение;@>
– левый содержит правый;<@
– правый содержит левый;@@
,~~
– соответствие запросу.
Примечание:
Операторы
&&
,@>
и<@
работают только с не содержащимиNULL
целочисленными массивами. Благодаря этому ограничению, в большинстве случаев, они работают быстрее, чем равнозначные одноименные встроенные операторы PostgreSQL, которые работают с массивами любых типов.Операторы
@@
и~~
проверяют, удовлетворяет ли массив запросу, представляемому в виде значения специализированного типа данныхquery_int
. Запрос содержит целочисленные значения, возможно с использованием операторов&
(AND
),|
(OR
) и!
(NOT
). Например, запросу1&(2|3)
удовлетворяют массивы, которые содержат1
и также содержат2
или3
.Выражение запроса заключается в одинарные кавычки (апострофы). Пример:
'1&(2|3)'
.
Функции
Функция | Входные параметры | Возвращаемое значение | Описание |
---|---|---|---|
icount | integer[] | integer | Выдает число элементов в массиве |
sort | integer[], dir text | integer[] | Сортирует массив в порядке возрастания или убывания в зависимости от значения параметра dir : asc – по возрастанию или desc – по убыванию |
sort | integer[] | integer[] | Сортирует в порядке возрастания |
sort_asc | integer[] | integer[] | Сортирует в порядке возрастания |
sort_desc | integer[] | integer[] | Сортирует в порядке убывания |
uniq | integer[] | integer[] | Удаляет стоящие рядом дубликаты |
idx | integer[], item integer | integer | Возвращает порядковый номер (индекс) первого равного значению item элемента массива или 0 в случае отсутствия элемента со значением item |
subarray | integer[], start integer [, len integer ] | integer[] | Извлекает часть массива, которая начинается с позиции start и содержит len элементов; параметр len можно опустить, тогда будет извлечена часть массива, которая начинается с позиции start и до конца |
intset | integer | integer[] | Создает массив с одним элементом |