A única maneira que eu conheço é uma espécie de 'kludge por uso'.
Por exemplo, tenho dados que incluem uma matriz de números de propriedades (nome do atributo propnum_array
, dtype varchar[]
) e, às vezes, desejo identificar os dados em que a matriz está vazia.
Testar para propnum_array = {}
ou propnum_array is null
ou propnum[0]=''
(ou qualquer outra variação nesse tipo de tema) deixa o QGIS amordaçado, no entanto, eu posso fazer regexp_match( propnum_array,'\\d')
ou propnum_array ilike '{""}'
ou propnum_array = '{""}'
particionar os dados em coisas que não estão vazias propnum_array
e coisas que não estão vazias .
O que isso significa é que, se as matrizes tiverem estrutura (por exemplo, valores específicos em elementos específicos da matriz), você poderá procurar por elas: se desejar todos os valores em que o segundo elemento em uma matriz de 3 elementos for 'Y', então você vai querer algo assim regexp_match( propnum_array,'[,]*\'Y\'\[,]*')
(com certeza precisa escapar de vírgulas e aspas internas à cadeia de caracteres de correspondência, mas esse é um caso de uso para outra pessoa se preocupar).
O fato de propnum_array ilike '{""}'
funcionar parece indicar que o QGIS trata matrizes como se fossem texto. Como alternativa, ele pode ser convertido em texto on-the-fly, se necessário - mas não faria sentido que os tipos de matriz não sejam documentados (AFAIK). Não consegui encontrar nenhum documento sobre manipulação de array e há perguntas na lista de discussão osgeo-qgis recentemente em janeiro de 2015.
Acho que a principal dica é que não há funções de matriz no editor de expressões, embora eu entenda que o plug-in 'Data Driven Input Mask' tem manipulação de matriz desde a v1.0.0 (fevereiro de 2015).