Единственный способ, о котором я знаю, это своего рода «клудж для каждого использования».
Например, у меня есть данные, которые включают в себя массив номеров свойств (имя атрибута propnum_array, dtype varchar[]), и я иногда хочу идентифицировать любые данные, где массив пуст.
Проверка на propnum_array = {}или propnum_array is nullили propnum[0]=''(или любые другие вариации на тему этого типа) делает QGIS заторможенным, однако я могу сделать regexp_match( propnum_array,'\\d')или propnum_array ilike '{""}'или propnum_array = '{""}'и разделить данные на вещи, которые имеют непустые, propnum_arrayи вещи, которые не имеют.
Это означает, что если массивы имеют структуру (например, конкретные значения для определенных элементов в массиве), вы можете выполнить поиск таких: если вам нужны все значения, где вторым элементом в массиве из 3 элементов является «Y», то вы захотите что-то вроде этого regexp_match( propnum_array,'[,]*\'Y\'\[,]*')(почти наверняка вам нужно экранировать запятые и одинарные кавычки внутри строки совпадения, но это вариант использования для кого-то, о ком нужно беспокоиться).
Тот факт, что propnum_array ilike '{""}'работает, похоже, указывает на то, что QGIS рассматривает массивы так, как если бы они были текстовыми. Кроме того, он может преобразовывать их в текст на лету, если это необходимо, но тогда не имеет смысла недокументировать типы массивов (AFAIK). Я не смог найти никаких документов по обработке массивов, и есть вопросы в списке рассылки osgeo-qgis еще в январе 2015 года.
Я предполагаю, что главная подсказка в том, что в редакторе выражений нет функций массива, хотя я понимаю, что плагин « Маска ввода, управляемая данными» обрабатывает массивы начиная с версии 1.0.0 (февраль 2015 г.).