Clojure / postgresql: Как мне получить доступ к значениям перечисления из результатов Jdbc4Array?

) У меня есть перечисление в postgresql, определенное так:

create type color as enum ('yellow', 'purple', 'white', 'black');

И я могу добраться до Jdbc4Array следующим образом:

(def colors 
  ((first (sql/with-connection db/db 
    (sql/with-query-results res 
      ["select enum_range(null::color)"]
      (doall res)))) :enum_range))

Это показывает объект вроде этого:

#<Jdbc4Array {yellow,purple,white,black}>

Но обычная попытка выдает исключение:

(.getArray colors) => stream closed

Итак, я полагаю, что мне нужно получить доступ к массиву до закрытия соединения:

(def colors 
  ((sql/with-connection db/db 
    (sql/with-query-results res 
      ["select enum_range(null::color)"]
      (.getArray ((first (doall res)) :enum_range))))))

Но в этом случае я получаю это исключение:

Method org.postgresql.jdbc4.Jdbc4Array.getArrayImpl(long,int,Map)
is not yet implemented.

Sinister. Что я могу здесь сделать?

8
задан prismofeverything 30 August 2011 в 03:00
поделиться