On 30-11-2011 13:08:40 +0100, Viktor Rosenfeld wrote:
I get an error message when I retrieve a MAL plan over JDBC after the 250th call to ResultSet.next(). The relevant part of the stack trace is:
java.lang.AssertionError: block 0 should have been fetched by now :( at nl.cwi.monetdb.jdbc.MonetConnection$ResultSetResponse.getLine(MonetConnection.java:1585)
They are "real" SQL results. The PLAN, EXPLAIN and TRACE results are "fake", and they cause JDBC to choke when the results get large. It's simply because the server doesn't behave as the client asked it to behave (because these are "fake" results).
Short answer: this is why these are not supported through JDBC.
OK, thanks.
I came across this once again, and found that with some goodwill this was actually easy to fix. Next release "Dec2011" will have the fix for this. So TRACE and EXPLAIN will work over JDBC. It may just blowup a bit in case of lots of output, since the blockwise pagination of the results is absent.