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 null
atau 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_array
dan 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).