PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

requête paresseuse clojure.java.jdbc

Tout d'abord, consultez https://jdbc.postgresql.org/documentation/83/query.html#query-with-cursor.

Résolu comme ça.

(jdbc/with-db-transaction [tx connection]
  (jdbc/query tx
    [(jdbc/prepare-statement (:connection tx)
                              "select * from mytable"
                              {:fetch-size 10})]
     {:result-set-fn (fn [result-set] ...)}))

:result-set-fn est une fonction qui consomme le jeu de résultats paresseux.

with-db-transaction s'occupe de autoCommit défini sur false .:fetch-size n'est pas passé de query vous devez donc faire une prepare-statement vous-même.