Użyj typu danych array [] w QGIS z PostgreSQL

9

Jestem tylko początkującym w GIS, więc chętnie zobaczę tutaj każdy komentarz.

Mam tabele w PostgreSQL, które podłączyłem do QGIS. Istnieją kolumny w tabelach z typem danych array[]. Ale użytkownikom nie jest łatwo wstawić dane do kolumny przy użyciu takiego widoku, jak {a, d, c}. Czy istnieje prosty sposób edycji danych?

Mam tylko pewien pomysł, aby umieścić dane w QGIS, takie jak „a, b, c” i zrobić triggerINSERT / UPDATE PRZED, który umieści dane w Postgrestabeli we właściwym wyglądzie. Ale to też nie wydaje się być najlepszym sposobem.

Casandra
źródło

Odpowiedzi:

1

Jedyny sposób, w jaki jestem świadomy, to rodzaj „kludge na użycie”.

Na przykład mam dane, które zawierają tablicę numerów właściwości (nazwa atrybutu propnum_array, dtype varchar[]), i czasami chcę zidentyfikować dane, w których tablica jest pusta.

Testowanie propnum_array = {}lub propnum_array is nulllub propnum[0]=''(lub jakiekolwiek inne odmiany tego typu tematu) sprawia QGIS knebel, jednak mogę zrobić regexp_match( propnum_array,'\\d')lub propnum_array ilike '{""}'czy propnum_array = '{""}'i partycji dane do materiału, który ma niepusty propnum_arrayi rzeczy, że nie.

Oznacza to, że jeśli tablice mają strukturę (np. Określone wartości w określonych elementach tablicy), możesz je wyszukać: jeśli chcesz wszystkich wartości, w których drugim elementem w tablicy 3-elementowej jest „Y”, to będziesz potrzebować czegoś takiego regexp_match( propnum_array,'[,]*\'Y\'\[,]*')(całkiem pewne, że musisz uciec od przecinków i pojedynczych cudzysłowów wewnątrz ciągu dopasowania, ale jest to przypadek użycia dla kogoś innego, o co należy się martwić).

Fakt, że propnum_array ilike '{""}'działa, wydaje się wskazywać, że QGIS traktuje tablice jak tekst. Ewentualnie może rzutować je na tekst w locie, jeśli jest to wymagane - ale wtedy nie ma sensu, aby typy tablic były nieudokumentowane (AFAIK). Nie znalazłem żadnych dokumentów na temat obsługi tablic, a na liście mailowej osgeo-qgis są pytania jeszcze od stycznia 2015.

Wydaje mi się, że główną wskazówką jest to, że w edytorze wyrażeń nie ma żadnych funkcji tablicowych, chociaż rozumiem, że wtyczka „Data Driven Input Mask” obsługuje tablicę od wersji 1.0.0 (luty 2015).

GT.
źródło