libpqtypes
tampaknya memiliki beberapa dukungan untuk hstore
.
Pilihan lainnya adalah menghindari interaksi langsung dengan hstore
dalam kode Anda. Anda masih bisa mendapatkan keuntungan darinya di database tanpa berurusan dengan representasi teksnya di sisi klien. Katakanlah Anda ingin mengambil bidang hstore; Anda cukup menggunakan:
SELECT t.id, k, v FROM thetable t, LATERAL each(t.hstorefield);
atau pada versi PostgreSQL lama Anda dapat menggunakan formulir set-returning-function-in-SELECT yang unik dan tidak standar:
SELECT t.id, each(t.hstorefield) FROM thetable t;
(tapi hati-hati jika memilih beberapa catatan dari t
dengan cara ini, Anda akan mendapatkan hasil yang aneh ketika LATERAL
akan baik-baik saja).
Pilihan lain adalah menggunakan hstore_to_array
atau hstore_to_matrix
saat membuat kueri, jika Anda merasa nyaman berurusan dengan representasi array PostgreSQL.
Untuk membuat nilai hstore, Anda dapat menggunakan konstruktor hstore yang menggunakan array. Array tersebut pada gilirannya dapat dibuat dengan array_agg
melalui VALUES
klausa jika Anda tidak ingin berurusan dengan representasi array PostgreSQL dalam kode Anda.
Semua kekacauan ini akan hilang di masa mendatang, karena PostgreSQL 9.4 kemungkinan akan memiliki interoperasi yang jauh lebih baik antara tipe hstore dan json, memungkinkan Anda untuk hanya menggunakan representasi json saat berinteraksi dengan hstore.