Utilice el tipo de datos array [] en QGIS de PostgreSQL

9

Soy un principiante en SIG, así que me alegrará ver algún comentario aquí.

Tengo tablas en PostgreSQL que he conectado a QGIS. Hay columnas en tablas con tipo de datos array[]. Pero no es fácil para los usuarios insertar datos en la columna usando una vista como {a, d, c}. ¿Hay una manera fácil de editar los datos?

Solo tengo una idea para poner datos en QGIS como 'a, b, c' y hacer un triggerINSERT / UPDATE ANTES que pondrá los datos en la Postgrestabla en el aspecto correcto. Pero tampoco parece ser la mejor manera.

Casandra
fuente

Respuestas:

1

La única manera de la que soy consciente es una especie de 'kludge por uso'.

Por ejemplo, tengo datos que incluyen una matriz de números de propiedad (nombre de atributo propnum_array, dtype varchar[]), y a veces quiero identificar cualquier información donde la matriz esté vacía.

Las pruebas para detectar propnum_array = {}o propnum_array is nullo propnum[0]=''(o cualquier otra variación de ese tipo de tema) hace que QGIS mordaza, sin embargo yo puedo hacer regexp_match( propnum_array,'\\d')o propnum_array ilike '{""}'o propnum_array = '{""}'y partición de los datos en cosas que no vacío propnum_arrayy cosas que no lo ha hecho.

Lo que esto significa es que si las matrices tienen estructura (p. Ej., Valores específicos en elementos específicos de la matriz), puede buscarlas: si desea todos los valores donde el segundo elemento en una matriz de 3 elementos es 'Y', entonces querrá algo como regexp_match( propnum_array,'[,]*\'Y\'\[,]*')(bastante seguro de que tiene que escapar de las comas y comillas simples internas de la cadena de coincidencia, pero ese es un caso de uso por el que alguien más debe preocuparse).

El hecho de que propnum_array ilike '{""}'funcione parece indicar que QGIS trata las matrices como si fueran texto. Alternativamente, podría convertirlos en texto sobre la marcha, si es necesario, pero entonces no tendría sentido que los tipos de matriz no estén documentados (AFAIK). No he podido encontrar ningún documento sobre el manejo de matrices, y hay preguntas en la lista de correo osgeo-qgis en enero de 2015.

Supongo que la pista principal es que no hay funciones de matriz en el editor de expresiones, aunque entiendo que el complemento 'Data Driven Input Mask' ha tenido manejo de matriz desde v1.0.0 (febrero de 2015).

GT.
fuente