Hi,
I've been playing around with Squirrel SQL a bit. I'm hoping to use it
in place of Oracle's stuff.
First, I think current CVS is ready, as it's a definite improvement over
the last released version for me. When I tried 0.9.6, it took a very
long time to connect (I think it was trying to load all of the metadata
right away, correct? I'm connecting over the Internet to a large Oracle
database, so that's not a good idea.) It's better now. Also, I think the
old one leaked cursors - I got maximum cursors exceeded messages when
browsing metadata.
That doesn't mean I think it's perfect, though. I've got some
problems/interface comments/feature requests:
- Typing "./squirrel-sql.sh" doesn't work for me right in the dist
directory unless I set INSTALL_PATH=`pwd`. Was this supposed to be
substituted in the ant file? If so, it didn't work.
- Ideally, just a "java -jar squirrel-sql.jar" would work, so I wouldn't
need the shell script/batch file at all. I think you can have classpaths
in the meta-inf. If not, the other jars would have to be included in
that one. This would be better because batch files/java pop up
unnecessary terminal windows on Windows. Clicking on the jar file
directly launches javaw, which doesn't have that problem.
- It's slow when browsing metadata. It would be nice if it cached more
(column-level information particularly) so looking at it a second time
would be quick.
- IMHO auto commit should be off by default. Or at least there should be
a preference for it per-database alias, not per-session, so I don't need
to toggle it every time I connect.
- I'm glad to see it doesn't block waiting for a database response. This
was what started me looking for an alternative to the Oracle 8i SQL
Worksheet to begin with. Killing the program when I forgot a join
condition was not pleasant.
- The metadata views show a lot of useless columns. Ones that are
consistently <null>: schema on PostgreSQL (even 7.3b1 - I guess they
haven't updated their JDBC drivers), table_cat on Oracle. And some
things not really intended for humans (data_type; the numbers mean
nothing to me; I just want type_name). If these all went away, it would
be easier to find what I'm looking for.
- I loved the way it keeps around multiple resultsets in tabs, but I
think it could be even better:
* I tend to work with a couple queries at once and refine them. It'd
be nice if a new tab replaced the current one unless I hit ctrl-T (as in
Mozilla). This way, older versions of the current query would go away.
* And also, if the SQL was per-tab as well, so I could refine a
couple queries in parallel without doing as much copying and pasting.
* I'd like to see each SQL tab go into the top-level tab bar instead
of the one "SQL" one and subtabs of that. Maybe not conceptually quite
as clean - "Objects" would be different from all the others then - but
less clutter.
- I hate the MDI interface/subwindows. I usually only work with one
database at once - I only want that window up. Even when I do work with
two databases, I'd prefer they be entirely separate windows. The connect
stuff could be a dialog box that pops up when you first start the
program and when you hit ctrl-N or something (new connection).
- It would be nice if the statement division stuff was smarter. I'd like
to be able to type in PL/SQL blocks without changing the statement
seperator. If it could do everything as the Oracle SQL Worksheet 8i does
(not the 9i; blank lines in "create table" commands confuse it; grr),
I'd be really, really happy.
- Feature request: Oracle query execution plans, like their "SQL
Scratchpad" in the "Enterprise Manager Console" has. SQL Scratchpad
really annoys me, but as is I've gotta use it occasionally. "explain
plan for" dumps all this info into a table, but the SQL Scratchpad is
the only thing I've seen that does a decent job of formatting it. (The
only second is this utlxplp.sql thing that does text-based formatting.)
Hope those are useful.
If I'm feeling ambitious later and have time, I might try to implement
some of my suggestions. No promises.
Scott
|