Tengo una enumeración en PostgreSQL se define así:Clojure/postgresql: ¿Cómo accedo a los valores enum desde los resultados de Jdbc4Array?
create type color as enum ('yellow', 'purple', 'white', 'black');
Y puedo llegar al Jdbc4Array así:
(def colors
((first (sql/with-connection db/db
(sql/with-query-results res
["select enum_range(null::color)"]
(doall res)))) :enum_range))
Esto muestra un objeto como éste:
#<Jdbc4Array {yellow,purple,white,black}>
Pero intentar las cosas habituales arroja una excepción:
(.getArray colors) => stream closed
por lo que figura que necesito para acceder a la matriz antes de que se cierre la conexión:
(def colors
((sql/with-connection db/db
(sql/with-query-results res
["select enum_range(null::color)"]
(.getArray ((first (doall res)) :enum_range))))))
Pero en este caso me sale esta excepción:
Method org.postgresql.jdbc4.Jdbc4Array.getArrayImpl(long,int,Map)
is not yet implemented.
siniestro. ¿Qué puedo hacer aquí?