As for replacing Squirrel, I am afraid that would be a significant undertaking – it is pretty tightly bound with the DE code (as it was under SQLExplorer, JFaceDBC). I for one think it would be a Good Thing ™ to do, and I will pass on your suggestion. But I would not expect it to be done. However, fixing the underlying squirrel code (assuming I can establish what version of the code is used, since we are relying on the unversioned JAR file that was packaged with SQLExplorer originally) is not a bad suggestion. Thanx, again!
Then change the net.sourceforge.squirrel_sql…SQLConnection class, so that it caches not only the connection, but the DatabaseMetadata object as well, instead of retrieving a new one everytime.
Or in case the DatabaseMetadata object cannot be reused after an exception, then the alternative is that in case of every exception corrupting the metadata or leaking resources (these unfortunately has to be identified manually, easiest way to do this is experiment with a database configured for low available cursor limit) is to create a new connection in those occasions (when the metadata/connection is corrupted or leaking resources).
That of course means, that for Metadata-related exploration code, you would need a separate connection from that used by the SQL editor or other user-interaction related stuff, so that you don’t inadvertently lose changes in a transaction or be forced to commit.
Regards,
Robert