Обсуждение: BUG #4483: setAutoCommit false shouldn't be necessary for fetchSize to work

Поиск
Список
Период
Сортировка

BUG #4483: setAutoCommit false shouldn't be necessary for fetchSize to work

От
"David Smiley"
Дата:
The following bug has been logged online:

Bug reference:      4483
Logged by:          David Smiley
Email address:      dsmiley@mitre.org
PostgreSQL version: 8.3
Operating system:   Mac OS X
Description:        setAutoCommit false shouldn't be necessary for fetchSize
to work
Details:

No matter what is going on internally within the JDBC driver, I don't
believe disabling autoCommit should be necessary to benefit from the
fetchSize hint (i.e. cursors).  As long as the user code hasn't iterated to
the end of the resultSet yet, the semantics of autoCommit are irrelevant.

References:
http://java.sun.com/javase/6/docs/api/java/sql/Connection.html#setAutoCommit
(boolean)
http://jdbc.postgresql.org/documentation/83/query.html#query-with-cursor

Re: BUG #4483: setAutoCommit false shouldn't be necessary for fetchSize to work

От
Kris Jurka
Дата:
On Thu, 16 Oct 2008, David Smiley wrote:

> Bug reference:      4483
> Description:        setAutoCommit false shouldn't be necessary for fetchSize
> to work
> Details:
>
> No matter what is going on internally within the JDBC driver, I don't
> believe disabling autoCommit should be necessary to benefit from the
> fetchSize hint (i.e. cursors).  As long as the user code hasn't iterated to
> the end of the resultSet yet, the semantics of autoCommit are irrelevant.

Unless the cursor has been opened WITH HOLD, the cursor will be closed at
transaction end.  So to be able to fetch data from the cursor you must not
have autocommit on.  Since the JDBC driver uses protocol level cursors
(portals), it doesn't even have the option of specifying WITH HOLD.

Kris Jurka