Gunakan tipe data array [] dalam QGIS dari PostgreSQL

9

Saya hanya pemula di GIS, jadi saya akan senang melihat komentar di sini.

Saya punya tabel di PostgreSQL yang saya sambungkan ke QGIS. Ada kolom dalam tabel dengan tipe data array[]. Tetapi tidak mudah bagi pengguna untuk memasukkan data ke dalam kolom menggunakan tampilan seperti {a, d, c}. Apakah ada cara mudah untuk mengedit data?

Saya hanya punya beberapa ide untuk memasukkan data dalam QGIS seperti 'a, b, c' dan membuat triggerpada INSERT / UPDATE SEBELUM yang akan menempatkan data ke dalam Postgrestabel di tampilan yang benar. Tapi sepertinya juga bukan cara terbaik.

Casandra
sumber

Jawaban:

1

Satu-satunya cara yang saya sadari adalah semacam 'per-gunakan kludge'.

Sebagai contoh, saya memiliki data yang menyertakan array nomor properti (nama atribut propnum_array, dtype varchar[]), dan kadang-kadang saya ingin mengidentifikasi data di mana array kosong.

Menguji untuk propnum_array = {}atau propnum_array is nullatau propnum[0]=''(atau variasi lain pada jenis tema itu) membuat QGIS muntah, namun saya dapat melakukan regexp_match( propnum_array,'\\d')atau propnum_array ilike '{""}'atau propnum_array = '{""}'membagi data menjadi hal-hal yang tidak kosong propnum_arraydan hal-hal yang belum.

Apa artinya ini adalah bahwa jika array memiliki struktur (misalnya, nilai-nilai spesifik pada elemen-elemen tertentu dalam array), Anda dapat memindai untuk itu: jika Anda ingin semua nilai di mana elemen kedua dalam array 3-elemen adalah 'Y', maka Anda akan menginginkan sesuatu seperti regexp_match( propnum_array,'[,]*\'Y\'\[,]*')(cukup yakin Anda harus melarikan diri dari koma dan tanda kutip tunggal internal ke string pertandingan, tapi itu kasus penggunaan untuk orang lain khawatir tentang).

Fakta yang propnum_array ilike '{""}'berfungsi, tampaknya menunjukkan bahwa QGIS memperlakukan array seolah-olah itu teks. Atau, itu mungkin melemparkan mereka ke teks on-the-fly, jika diperlukan - tetapi kemudian tidak masuk akal untuk jenis array yang tidak didokumentasikan (AFAIK). Saya belum dapat menemukan dokumen tentang penanganan array, dan ada pertanyaan di milis osgeo-qgis baru-baru ini Jan 2015.

Saya kira petunjuk utamanya adalah bahwa tidak ada fungsi array di editor ekspresi, meskipun saya mengerti bahwa plugin 'Data Driven Input Mask' telah memiliki penanganan array sejak v1.0.0 (Feb 2015).

GT
sumber