Thread: Driver JDBC3 build 213 for postgreSQL 7.4

Driver JDBC3 build 213 for postgreSQL 7.4

From
Alban Mathieu
Date:
Hi,

I got some troubles with the jdbc driver build 213 for postgreSQL 7.4
The method ResultSet.getFetchSize() return always 0

I use now the driver for postgreSQL 7.3 and evrything is working fine...

Any idea???

Best regards
Alban Mathieu


Re: Driver JDBC3 build 213 for postgreSQL 7.4

From
Oliver Jowett
Date:
Alban Mathieu wrote:
> Hi,
>
> I got some troubles with the jdbc driver build 213 for postgreSQL 7.4
> The method ResultSet.getFetchSize() return always 0
>
> I use now the driver for postgreSQL 7.3 and evrything is working fine...
>
> Any idea???

If you are expecting getFetchSize() to return the size of the resultset,
that was nonstandard behaviour in the older driver. Newer drivers follow
the JDBC API specification and return whatever was set by setFetchSize()
(or an unspecified default value).

To get the resultset size portably, try something like:

   PreparedStatement stmt =
     connection.prepareStatement("...",
       ResultSet.TYPE_SCROLL_INSENSITIVE,
       ResultSet.CONCUR_READ_ONLY);
   // .. set parameters ..
   ResultSet rs = stmt.executeQuery();
   rs.last();
   int resultSetSize = rs.getRow();

-O

Re: Driver JDBC3 build 213 for postgreSQL 7.4

From
Kris Jurka
Date:
On Wed, 19 May 2004, Alban Mathieu wrote:

> I got some troubles with the jdbc driver build 213 for postgreSQL 7.4
> The method ResultSet.getFetchSize() return always 0
>
> I use now the driver for postgreSQL 7.3 and evrything is working fine...
>

A lot of people have been using getFetchSize to try and determine the
retrieved ResultSet size which happened to be true in <= 7.3 drivers, but
this is not what the method is actually supposed to do.  The 7.4 driver
has cursor based fetching which uses the fetch size for it's intended
purpose.  Please consult the javadoc and find a more compliant way of
doing what you want.

Kris Jurka