Re: AbstractJdbc2Statement.setFetchSize() - Mailing list pgsql-jdbc

From Oliver Jowett
Subject Re: AbstractJdbc2Statement.setFetchSize()
Date
Msg-id 20031017011411.GA433@opencloud.com
Whole thread Raw
In response to AbstractJdbc2Statement.setFetchSize()  (Rich Cullingford <rculling@sysd.com>)
Responses Re: AbstractJdbc2Statement.setFetchSize()
List pgsql-jdbc
On Thu, Oct 16, 2003 at 06:09:47PM -0400, Rich Cullingford wrote:
> All,
> I had hoped to use this method, which is implemented in PG 7.4, to limit
> the number of rows retrieved (for display purposes) out of some massive
> datasets we have. I know the JDBC spec says that this is just a hint,
> but calling the method on a Statement doesn't seem to have any effect on
> the SELECT. It still seesm to try to load the whole dataset.
>
> Is there any way to avoid cursored FETCH approaches to this problem?

Recent drivers should transparently transform queries into a cursor-based
form if you set a non-zero fetchsize. However there are a few gotchas:

 - it doesn't do this if (JDBC-level) autocommit is on
 - it doesn't do this if you use a PreparedStatement with parameters
 - it tries to do this even if the statement is something other than a
    SELECT statement, and gets horribly confused in the process.

I have patches for the second two if needed; they probably won't reach CVS
until after 7.4 is out, though, since they're a bit invasive.

-O

pgsql-jdbc by date:

Previous
From: Rich Cullingford
Date:
Subject: AbstractJdbc2Statement.setFetchSize()
Next
From: Rich Cullingford
Date:
Subject: Re: AbstractJdbc2Statement.setFetchSize()