On 07/18/2012 05:00 AM, Radim Kolar wrote:
Dne 17.7.2012 22:05, Dave Cramer napsal(a):
Radim,
As per our docs
http://jdbc.postgresql.org/documentation/91/query.html#fetchsize-example
You need to do the select inside a transaction
In transaction that simple example really works. Can it be fixed in driver to work in autocommit mode? I will try scrollable cursor next.
I haven't looked into how the fetch size code works to see whether it's possible for it to operate in autocommit. A quick look at QueryExecutorImpl.sendOneQuery in org/postgresql/core/v3/QueryExecutorImpl.java finds the line:
boolean usePortal = (flags & QueryExecutor.QUERY_FORWARD_CURSOR) != 0 && !noResults && !noMeta && fetchSize > 0 && !describeOnly;
given that and the subsequent code I don't understand why an explicit transaction is required. I've only done a tiny bit with the JDBC code, though, and only related to the authentication system and client certificates.
My rather blunt comment to you at the start of this thread was to point out that JDBC driver development doesn't just happen. It's a volunteer effort; people put their own time into this. Something like
"It should not be that difficult to get it fixed. I am not interested in workarounds"
is pretty dismissive of the work you're already getting for free and without having contributed to it in any way. If you don't like it, one of your options is to do something about it yourself. The PgJDBC driver is open source, so rather than just asserting it can't be that difficult, you have the opportunity to prove your assertion by producing a patch that fixes your problem. Demanding that others spend their time fixing a problem you care about is a bit rude.
You can check the sources out here:
http://jdbc.postgresql.org/development/git.html and there's developer info here:
http://jdbc.postgresql.org/development/intro.html If you approach this with a the attitude of "this is causing a problem for me and I would love some help fixing it, any suggestions where I should start" you will probably get better results.
--
Craig Ringer