Re: ResultSet storing all rows with defaulftFetchSize to 5000
От | Dave Cramer |
---|---|
Тема | Re: ResultSet storing all rows with defaulftFetchSize to 5000 |
Дата | |
Msg-id | CADK3HH+X48GfCM=Qo7a1XSuCyGradAXou6+t+x6qtKCXbf9WqQ@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: ResultSet storing all rows with defaulftFetchSize to 5000 (Brad DeJong <bpd0018@gmail.com>) |
Ответы |
Re: ResultSet storing all rows with defaulftFetchSize to 5000
Re: ResultSet storing all rows with defaulftFetchSize to 5000 |
Список | pgsql-jdbc |
Jaime,
9.4.1208 is considerably out of date. You may want to upgrade.
On 8 February 2018 at 19:13, Brad DeJong <bpd0018@gmail.com> wrote:
On Wed, Feb 7, 2018 at 1:00 PM, Jaime Soler <jaime.soler@gmail.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;
В списке pgsql-jdbc по дате отправления: