Thread: Driver compatibility with 7.3 server
Hi everyone, happy holidays! We are are currently using Postgresql 7.3 and would like to be able to use cursors for large selects (ie: using Statement.setFetchSize()). Unfortunately, this is not implemented in the 7.3 JDBC driver. Is it possible to use a newer version of the JDBC driver, say 7.4, with the 7.3 version of the db server? Thanks. Mike
Duh, I just now found some documentation on this issue here: http://jdbc.postgresql.org/download.html#serverselection Looks like the newer drivers *should* be compatible, so I'll give it a shot. Please let me know if this could be problematic. Mike Mike Charnoky wrote: > Hi everyone, happy holidays! We are are currently using Postgresql 7.3 > and would like to be able to use cursors for large selects (ie: using > Statement.setFetchSize()). Unfortunately, this is not implemented in > the 7.3 JDBC driver. Is it possible to use a newer version of the JDBC > driver, say 7.4, with the 7.3 version of the db server? Thanks. > > > Mike > > ---------------------------(end of broadcast)--------------------------- > TIP 1: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly
Mike Charnoky wrote: > Hi everyone, happy holidays! We are are currently using Postgresql 7.3 > and would like to be able to use cursors for large selects (ie: using > Statement.setFetchSize()). Unfortunately, this is not implemented in > the 7.3 JDBC driver. Is it possible to use a newer version of the JDBC > driver, say 7.4, with the 7.3 version of the db server? Thanks. Later driver versions should work fine with a 7.3 server .. but .. The setFetchSize() / cursor support in recent drivers (8.0 or later) only turns on if the v3 wire protocol is being used. 7.3 servers don't support v3, so it's not going to help your particular case. For a while, the driver would rewrite queries to use DECLARE rather than using the v3 protocol facilities, which also works under v2 (but is somewhat more fragile). IIRC, this was done in the 7.4 series. So you could try an older, 7.4-era, driver and it might do the trick. -O
Thank you for the feedback. I was finally able to get this working successfully using the 7.4 JDBC driver with the 7.3 server. The tricky part I found out was that you have to set autocommit off (Connection.setAutoCommit(false)). Once I did so, my memory usage went down drastically! Mike Oliver Jowett wrote: > Mike Charnoky wrote: > >> Hi everyone, happy holidays! We are are currently using Postgresql 7.3 >> and would like to be able to use cursors for large selects (ie: using >> Statement.setFetchSize()). Unfortunately, this is not implemented in >> the 7.3 JDBC driver. Is it possible to use a newer version of the JDBC >> driver, say 7.4, with the 7.3 version of the db server? Thanks. > > > Later driver versions should work fine with a 7.3 server .. but .. > > The setFetchSize() / cursor support in recent drivers (8.0 or later) > only turns on if the v3 wire protocol is being used. 7.3 servers don't > support v3, so it's not going to help your particular case. > > For a while, the driver would rewrite queries to use DECLARE rather than > using the v3 protocol facilities, which also works under v2 (but is > somewhat more fragile). IIRC, this was done in the 7.4 series. So you > could try an older, 7.4-era, driver and it might do the trick. > > -O