funcool / funcool/clojure.jdbc

Docs: clarify cursor behavior

Open
#44 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
Clojure
Stars
106
Forks
23
PR merge metrics
No merged PRs in 30d

Description

Using clojure.jdbc w/ Hikari CP and Postgresql 11.

When attempting to create a cursor as described in the docs the process still ends up trying to load the whole result set into memory.

``` clojure
(def conn (jdbc/connection pool))
(def cursor (jdbc/fetch-lazy conn "SELECT \"uuid\", data_bytes FROM visitor_data;"))
(def cursor-seq (jdbc/cursor->lazyseq cursor)) ;; hangs here
```

If I explicitly set auto-commit and the fetch size I don't have that problem:
``` clojure
(def conn (jdbc/connection pool))
(def cursor (jdbc/fetch-lazy conn "SELECT \"uuid\", data_bytes FROM visitor_data;"))
(.setFetchSize (.-stmt cursor) 50)
(.setAutoCommit (.getConnection (.-stmt cursor)) false)
(def cursor-seq (jdbc/cursor->lazyseq cursor))
```

is this a documentation problem or is the library expected to modify those settings for us?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.