Use o tipo de dados array [] no QGIS do PostgreSQL


9

Eu sou apenas um iniciante em GIS, então ficarei feliz em ver qualquer comentário aqui.

Eu tenho tabelas no PostgreSQL que eu conectei ao QGIS. Existem colunas em tabelas com tipo de dados array[]. Mas não é fácil para os usuários inserirem dados na coluna usando uma visualização como {a, d, c}. Existe uma maneira fácil de editar os dados?

Eu tenho apenas uma idéia para colocar dados no QGIS como 'a, b, c' e fazer um triggerem INSERT / UPDATE ANTES, que colocará os dados na Postgrestabela com a aparência correta. Mas também parece não ser o melhor caminho.

Respostas:


1

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 nullou 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_arraye 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).

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.