Функции для битовых масок
bitmapBuild
Создаёт битовый массив из массива целочисленных значений.
Аргументы
array
– массив типаUInt*
.
Пример
bitmapToArray
Преобразует битовый массив в массив целочисленных значений.
Аргументы
bitmap
– битовый массив.
Пример
bitmapSubsetLimit
Создает подмножество битмапа с n элементами, расположенными между range_start
и cardinality_limit
.
Синтаксис
Аргументы
bitmap
– битмап. Bitmap object.range_start
– начальная точка подмножества. UInt32.cardinality_limit
– верхний предел подмножества. UInt32.
Возвращаемое значение
Подмножество битмапа.
Тип: Bitmap object.
Пример
Запрос:
Результат:
subBitmap
Возвращает элементы битмапа, начиная с позиции offset
. Число возвращаемых элементов ограничивается параметром cardinality_limit
. Аналог строковой функции substring), но для битмапа.
Синтаксис
Аргументы
bitmap
– битмап. Тип: Bitmap object.offset
– позиция первого элемента возвращаемого подмножества. Тип: UInt32.cardinality_limit
– максимальное число элементов возвращаемого подмножества. Тип: UInt32.
Возвращаемое значение
Подмножество битмапа.
Тип: Bitmap object.
Пример
Запрос:
Результат:
bitmapContains
Проверяет вхождение элемента в битовый массив.
Аргументы
haystack
– объект Bitmap, в котором функция ищет значение.needle
– значение, которое функция ищет. Тип — UInt32.
Возвращаемые значения
- 0 — если в
haystack
нетneedle
. - 1 — если в
haystack
естьneedle
.
Тип — UInt8
.
Пример
bitmapHasAny
Проверяет, имеют ли два битовых массива хотя бы один общий элемент.
Если вы уверены, что bitmap2
содержит строго один элемент, используйте функцию bitmapContains. Она работает эффективнее.
Аргументы
bitmap*
– массив любого типа с набором элементов.
Возвращаемые значения
1
, еслиbitmap1
иbitmap2
имеют хотя бы один одинаковый элемент.0
, в противном случае.
Пример
bitmapHasAll
Аналогично функции hasAll(array, array)
возвращает 1 если первый битовый массив содержит все элементы второго, 0 в противном случае.
Если второй аргумент является пустым битовым массивом, то возвращает 1.
Аргументы
bitmap
– битовый массив.
Пример
bitmapAnd
Логическое И для двух битовых массивов. Результат — новый битовый массив.
Аргументы
bitmap
– битовый массив.
Пример
bitmapOr
Логическое ИЛИ для двух битовых массивов. Результат — новый битовый массив.
Аргументы
bitmap
– битовый массив.
Пример
bitmapXor
Логическое исключающее ИЛИ для двух битовых массивов. Результат — новый битовый массив.
Аргументы
bitmap
– битовый массив.
Пример
bitmapAndnot
Логическое отрицание И для двух битовых массивов. Результат — новый битовый массив.
Аргументы
bitmap
– битовый массив.
Пример
bitmapCardinality
Возвращает кардинальность битового массива в виде значения типа UInt64
.
Аргументы
bitmap
– битовый массив.
Пример
bitmapAndCardinality
Выполняет логическое И и возвращает кардинальность (UInt64
) результирующего битового массива.
Аргументы
bitmap
– битовый массив.
Пример
bitmapOrCardinality
Выполняет логическое ИЛИ и возвращает кардинальность (UInt64
) результирующего битового массива.
Аргументы
bitmap
– битовый массив.
Пример
bitmapXorCardinality
Выполняет логическое исключающее ИЛИ и возвращает кардинальность (UInt64
) результирующего битового массива.
Аргументы
bitmap
– битовый массив.
Пример
bitmapAndnotCardinality
Выполняет логическое отрицание И и возвращает кардинальность (UInt64
) результирующего битового массива.
Аргументы
bitmap
– битовый массив.
Пример