I'm using the 7.3.3 backend, and the JDBC 8.0dev jdbc driver
(pgdev.306.jdbc3.jar).
I'm calling PreparedStatement.setFetchSize(32), on a table fetching 32KB
BYTEA records, and I'm blowing out memory on the executeQuery() call
of the prepared statement.
PreparedStatement.getFetchDirection reports 1000, which is
ResultSet.FETCH_FORWARD.
Any clues?
Here's the trace catching the driver red-handed with all the memory:
SITES BEGIN (ordered by live bytes) Sun Oct 10 09:55:56 2004
percent live alloc'ed stack class
rank self accum bytes objs bytes objs trace name
1 80.92% 80.92% 55023456 578 80423168 1051 62286 [B
TRACE 62286:
org.postgresql.core.PGStream.Receive(PGStream.java:410)
org.postgresql.core.PGStream.ReceiveTupleV2(PGStream.java:395)
org.postgresql.core.v2.QueryExecutorImpl.processResults(QueryExecutorImpl.java:337)
org.postgresql.core.v2.QueryExecutorImpl.execute(QueryExecutorImpl.java:251)
org.postgresql.core.v2.QueryExecutorImpl.execute(QueryExecutorImpl.java:159)
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:346)
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:294)
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:209)
org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)