Utilizzare il tipo di dati array [] in QGIS da PostgreSQL


9

Sono solo un principiante in GIS, quindi sarò felice di vedere qualsiasi commento qui.

Ho tabelle in PostgreSQL che ho collegato a QGIS. Ci sono colonne nelle tabelle con tipo di dati array[]. Ma non è facile per gli utenti inserire dati nella colonna usando una vista come {a, d, c}. C'è un modo semplice per modificare i dati?

Ho solo qualche idea di mettere i dati in QGIS come 'a, b, c' e fare un triggerINSERT / UPDATE PRIMA che metterà i dati nella Postgrestabella nel giusto aspetto. Ma non sembra anche il modo migliore.

Risposte:


1

L'unico modo di cui sono a conoscenza è una specie di "kludge per uso".

Ad esempio, ho dati che includono una matrice di numeri di proprietà (nome dell'attributo propnum_array, tipo varchar[]) e talvolta desidero identificare tutti i dati in cui la matrice è vuota.

Testare per propnum_array = {}o propnum_array is nullo propnum[0]=''(o qualsiasi altra variazione su quel tipo di tema) rende gag QGIS, tuttavia posso fare regexp_match( propnum_array,'\\d')o propnum_array ilike '{""}'o propnum_array = '{""}'e partizionare i dati in cose che non sono vuote propnum_arraye cose che non hanno.

Ciò significa che se gli array hanno una struttura (ad esempio valori specifici in corrispondenza di elementi specifici nell'array), è possibile eseguire la scansione per quelli: se si desidera tutti i valori in cui il secondo elemento in un array a 3 elementi è 'Y', allora vorrai qualcosa del genere regexp_match( propnum_array,'[,]*\'Y\'\[,]*')(abbastanza sicuro che devi sfuggire alle virgole e alle virgolette singole interne alla stringa di corrispondenza, ma che è un caso d'uso di cui qualcun altro deve preoccuparsi).

Il fatto che propnum_array ilike '{""}'funzioni, sembra indicare che QGIS considera gli array come se fossero testo. In alternativa, se necessario, può essere trasmesso al testo al volo, ma non avrebbe senso che i tipi di array non siano documentati (AFAIK). Non sono stato in grado di trovare alcun documento sulla gestione dell'array e ci sono domande sulla mailing list di osgeo-qgis fino a gennaio 2015.

Suppongo che il suggerimento principale sia che non ci sono funzioni di array nell'editor delle espressioni, anche se capisco che il plug-in 'Data Driven Input Mask' ha avuto la gestione degli array dalla v1.0.0 (febbraio 2015).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.