| From: | Brad DeJong <bpd0018(at)gmail(dot)com> |
|---|---|
| To: | Jaime Soler <jaime(dot)soler(at)gmail(dot)com> |
| Cc: | List <pgsql-jdbc(at)postgresql(dot)org> |
| Subject: | Re: ResultSet storing all rows with defaulftFetchSize to 5000 |
| Date: | 2018-02-09 00:13:17 |
| Message-ID: | CAJnrtnwzjFApwFVpyz=Fc7=d_VaZFTyoMrJ3PO_qf5+OWo-p2w@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-jdbc |
On Wed, Feb 7, 2018 at 1:00 PM, Jaime Soler <jaime(dot)soler(at)gmail(dot)com> wrote:
> ... ResultSet holdability is HOLD_CURSOR_OVER_COMMIT. ...
> And the postgresql comunity jdbc driver 9.4 documentation said:
> "... There are a number of restrictions which will make the driver
> silently fall back to fetch the whole ResultSet ..."
>
>
And the statement must be created with a ResultSet holdability of
CLOSE_CURSORS_AT_COMMIT - which is not documented.
https://github.com/pgjdbc/pgjdbc/pull/1105 submitted to fix that.
The relevant code fragment from org.postgresql.jdbc.PgStatement.java is ...
// Enable cursor-based resultset if possible.
if (fetchSize > 0 && !wantsScrollableResultSet() &&
!connection.getAutoCommit()
&& !wantsHoldableResultSet()) {
flags |= QueryExecutor.QUERY_FORWARD_CURSOR;
}
And the fragment from org.postgresql.v3.QueryExecutorImpl.java ...
boolean usePortal = (flags & QueryExecutor.QUERY_FORWARD_CURSOR) != 0
&& !noResults && !noMeta
&& fetchSize > 0 && !describeOnly;
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Alan Stange | 2018-02-09 18:51:45 | setFetchSize() and preferQueryMode incompatible? |
| Previous Message | Jaime Soler | 2018-02-07 19:00:02 | ResultSet storing all rows with defaulftFetchSize to 5000 |