Re: absolute positioning - Mailing list pgsql-jdbc
| From | Oliver Jowett |
|---|---|
| Subject | Re: absolute positioning |
| Date | |
| Msg-id | 406151FE.8010106@opencloud.com Whole thread Raw |
| In response to | Re: absolute positioning (Indra Heckenbach <indra@macnica.com>) |
| List | pgsql-jdbc |
Indra Heckenbach wrote:
> I went ahead and patched the JDBC jar from the CVS head on gborg. This
> patch should enable scrollable cursor support, and provide absolute()
> w/o loading all results into the JDBC buffer.
Context diff ('cvs diff -c') output is preferred as it's a lot more
readable..
Unfortunately, the patch
> involves changing some core aspects of the driver. I have not reviewed
> the existing code thoroughly, so I could have introduced problems. I
> have also not tested extensively. However, the patch works for me, and
> I could use the patched driver with existing applications. Is there a
> test suite for the driver? At this point I hope to get some feedback.
There is indeed a test suite -- try 'ant test'. You'll need the JUnit
jar available in Ant's classpath or it fails silently (we should fix
that..). You also need a database called 'test' and a user called 'test'
on a server running on localhost (these are tweakable -- see build.xml
for details). The test cases are in org/postgresql/test.
With your patch I get a couple of failures from the test suite that I
don't get with CVS HEAD:
> [junit] Testcase: testScrollableFetch(org.postgresql.test.jdbc2.CursorFetchTest): FAILED
> [junit] ran out of rows doing a reverse fetch on iteration 1/0 at position 49 with fetch size 1
> [junit] junit.framework.AssertionFailedError: ran out of rows doing a reverse fetch on iteration 1/0 at position
49with fetch size 1
> [junit] at org.postgresql.test.jdbc2.CursorFetchTest.testScrollableFetch(CursorFetchTest.java:100)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [junit] Testcase: testScrollableAbsoluteFetch(org.postgresql.test.jdbc2.CursorFetchTest): Caused an ERROR
> [junit] Result set not positioned properly, perhaps you need to call next().
> [junit] org.postgresql.util.PSQLException: Result set not positioned properly, perhaps you need to call next().
> [junit] at org.postgresql.jdbc1.AbstractJdbc1ResultSet.checkResultSet(AbstractJdbc1ResultSet.java:859)
> [junit] at org.postgresql.jdbc1.AbstractJdbc1ResultSet.getString(AbstractJdbc1ResultSet.java:222)
> [junit] at org.postgresql.jdbc1.AbstractJdbc1ResultSet.getFixedString(AbstractJdbc1ResultSet.java:823)
> [junit] at org.postgresql.jdbc1.AbstractJdbc1ResultSet.getInt(AbstractJdbc1ResultSet.java:310)
> [junit] at org.postgresql.test.jdbc2.CursorFetchTest.testScrollableAbsoluteFetch(CursorFetchTest.java:127)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [junit] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
-O
pgsql-jdbc by date: