Added streaming options for PostgreSQL to Tips & Tricks
This commit is contained in:
parent
7603e257e9
commit
789bf1fae6
2 changed files with 8 additions and 1 deletions
|
|
@ -55,7 +55,7 @@ Any function that creates a `Statement` or a `PreparedStatement` will accept the
|
||||||
|
|
||||||
* `:concurrency` -- a keyword that specifies the concurrency level: `:read-only`, `:updatable`,
|
* `:concurrency` -- a keyword that specifies the concurrency level: `:read-only`, `:updatable`,
|
||||||
* `:cursors` -- a keyword that specifies whether cursors should be closed or held over a commit: `:close`, `:hold`,
|
* `:cursors` -- a keyword that specifies whether cursors should be closed or held over a commit: `:close`, `:hold`,
|
||||||
* `:fetch-size` -- an integer that guides the JDBC driver in terms of how many rows to fetch at once; it is common to set `:fetch-size` to zero or a negative value in order to trigger streaming of result sets -- some JDBC drivers require additional options to be set on the connection _as well_,
|
* `:fetch-size` -- an integer that guides the JDBC driver in terms of how many rows to fetch at once; sometimes you need to set `:fetch-size` to zero or a negative value in order to trigger streaming of result sets -- some JDBC drivers require additional options to be set on the connection _as well_,
|
||||||
* `:max-rows` -- an integer that tells the JDBC driver to limit result sets to this many rows,
|
* `:max-rows` -- an integer that tells the JDBC driver to limit result sets to this many rows,
|
||||||
* `:result-type` -- a keyword that affects how the `ResultSet` can be traversed: `:forward-only`, `:scroll-insensitive`, `:scroll-sensitive`,
|
* `:result-type` -- a keyword that affects how the `ResultSet` can be traversed: `:forward-only`, `:scroll-insensitive`, `:scroll-sensitive`,
|
||||||
* `:timeout` -- an integer that specifies the (query) timeout allowed for SQL operations.
|
* `:timeout` -- an integer that specifies the (query) timeout allowed for SQL operations.
|
||||||
|
|
|
||||||
|
|
@ -289,4 +289,11 @@ If you have a query where you want to select where a column is `IN` a sequence o
|
||||||
|
|
||||||
What does this mean for your use of `next.jdbc`? In `plan`, `execute!`, and `execute-one!`, you can use `col = ANY(?)` in the SQL string and a single primitive array parameter, such as `(int-array [1 2 3 4])`. That means that in `next.jdbc.sql`'s functions that take a where clause (`find-by-keys`, `update!`, and `delete!`) you can specify `["col = ANY(?)" (int-array data)]` for what would be a `col IN (?,?,?,,,?)` where clause for other databases and require multiple values.
|
What does this mean for your use of `next.jdbc`? In `plan`, `execute!`, and `execute-one!`, you can use `col = ANY(?)` in the SQL string and a single primitive array parameter, such as `(int-array [1 2 3 4])`. That means that in `next.jdbc.sql`'s functions that take a where clause (`find-by-keys`, `update!`, and `delete!`) you can specify `["col = ANY(?)" (int-array data)]` for what would be a `col IN (?,?,?,,,?)` where clause for other databases and require multiple values.
|
||||||
|
|
||||||
|
#### Streaming Result Sets
|
||||||
|
|
||||||
|
You can get PostgreSQL to stream very large result sets (when you are reducing over `plan`) by setting the following options:
|
||||||
|
|
||||||
|
* `:auto-commit false` -- when opening the connection
|
||||||
|
* `:fetch-size 4000, :concurrency :read-only, :cursors :close, :result-type :forward-only` -- when running `plan` (or when creating a `PreparedStatement`).
|
||||||
|
|
||||||
[<: Getting Started](/doc/getting-started.md) | [Result Set Builders :>](/doc/result-set-builders.md)
|
[<: Getting Started](/doc/getting-started.md) | [Result Set Builders :>](/doc/result-set-builders.md)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue