Thread: Bug in setFetchSize
We are using pg80b1.308.jdbc3.jar with pg 7.4.5 and trying to use setFetchSize on Statement. Once we try and fetch outside the value we have set for fetchSize we get ERROR: portal "C_4" does not exist So it looks like you are using fetchSize as an absolute size, which is not my reading of the spec. -- Dave Smith CANdata Systems Ltd 416-493-9020
Dave Smith wrote: > We are using pg80b1.308.jdbc3.jar with pg 7.4.5 and trying to use > setFetchSize on Statement. > > Once we try and fetch outside the value we have set for fetchSize we get > ERROR: portal "C_4" does not exist The only case I can think of this happening is if you are trying to use a ResultSet after the transaction that created it has committed or rolled back. You're not meant to do that unless you specify HOLD_CURSORS_OVER_COMMIT (which the driver will currently reject as unsupported). The driver does not explicitly close ResultSets on commit, but the server closes the underlying cursor so you see this error. If that's not the scenario, can you provide some sample code that demonstrates the problem? > So it looks like you are using fetchSize as an absolute size, which is > not my reading of the spec. I don't understand your analysis. -O
Does it matter if the setAutoCommit is true or false .. or is it just an explicit commit(); call that would close the portal? On Fri, 2004-12-03 at 05:20, Oliver Jowett wrote: > Dave Smith wrote: > > We are using pg80b1.308.jdbc3.jar with pg 7.4.5 and trying to use > > setFetchSize on Statement. > > > > Once we try and fetch outside the value we have set for fetchSize we get > > ERROR: portal "C_4" does not exist > > The only case I can think of this happening is if you are trying to use > a ResultSet after the transaction that created it has committed or > rolled back. > > You're not meant to do that unless you specify HOLD_CURSORS_OVER_COMMIT > (which the driver will currently reject as unsupported). The driver does > not explicitly close ResultSets on commit, but the server closes the > underlying cursor so you see this error. > > If that's not the scenario, can you provide some sample code that > demonstrates the problem? > > > So it looks like you are using fetchSize as an absolute size, which is > > not my reading of the spec. > > I don't understand your analysis. > > -O > > ---------------------------(end of broadcast)--------------------------- > TIP 3: 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 -- Dave Smith CANdata Systems Ltd 416-493-9020
Dave Smith wrote: > Does it matter if the setAutoCommit is true or false .. or is it just an > explicit commit(); call that would close the portal? If autocommit is true then the driver shouldn't be using cursors at all in theory (since they'd become invalid immediately). Note that setAutoCommit() will do an implicit commit(), so if you're running with autocommit off, doing some queries, calling setAutoCommit, then trying to use the resultsets, then you will see similar problems. Example code showing the problem? -O