Releases: scgray/jsqsh
jsqsh-2.3
New Features
-
Extension plugin framework: Extensions to jsqsh can be developed that
provide a way to load additional commands and variables into jsqsh at
runtime (at jsqsh startup time, via the new\importcommand, or when
specific jdbc drivers are loaded)). With this feature jsqsh can
be dynamically extended with new features that, for example, take
advantages of features specific to a particular database implementation.
Details on extending jsqsh can be found in the 'EXTENDING.md" file
included with the source code. -
Added ability for
\goto produce a crosstab of the underlying results,
like so:[null][me] 1> select * from x [null][me] 2> go +-------+-----------+----------+ | STATE | DAYOFWEEK | SALES | +-------+-----------+----------+ | NJ | Mon | 14.20000 | | NJ | Tue | 11.40000 | | NJ | Wed | 19.30000 | | CA | Mon | 4.10000 | | CA | Tue | 8.30000 | | CA | Wed | 44.20000 | | NJ | Thu | 17.10000 | | AR | Tue | 4.30000 | +-------+-----------+----------+ [null][me] 1> select * from x [null][me] 2> go --crosstab dayofweek,state,sales +-----------+---------+----------+----------+ | DAYOFWEEK | AR | CA | NJ | +-----------+---------+----------+----------+ | Mon | [NULL] | 4.10000 | 14.20000 | | Tue | 4.30000 | 8.30000 | 11.40000 | | Wed | [NULL] | 44.20000 | 19.30000 | | Thu | [NULL] | [NULL] | 17.10000 | +-----------+---------+----------+----------+ (8 rows in results(first row: 0.001s; total: 0.002s) -
Added two new display syles,
simpleandtight. These styles are
identical in behavior toprettyandperfect(respectively) except
that they drop the outer borders allowing for a few more characters of
available screen space per line, like so:[null][me] 1> select * from x [null][me] 2> go -m tight STATE | DAYOFWEEK | SALES ------+-----------+--------- NJ | Mon | 14.20000 NJ | Tue | 11.40000 NJ | Wed | 19.30000 CA | Mon | 4.10000 CA | Tue | 8.30000 CA | Wed | 44.20000 NJ | Thu | 17.10000 AR | Tue | 4.30000 -
New
--url-var(-V) option is now available in\connector on the
jsqsh command line to explicitly set a variable contained in a JDBC
URL by name, like so:\connect -Vdb=myDb -dmydriverIn addition, the connection and driver manager configuration wizards
will automatically detect such variables and allow you to set them.This feature makes working with new JDBC URl's that need configuration
parameters that JSqsh didn't natively recognize much simpler. -
Added new
\readcommand to allow you to set variables using input
provided by the user -
The
csvdisplay style may now be configured via the new configuration
variables${csv_delimiter},${csv_quote},${csv_quote_esc}, and
${csv_null} -
The
\gocommand can now specify values for jsqsh configuration variables
the the new--var(-v) argument. Variables will only be set for the
duration of the command. -
JDBC driver properties can now include environment variables in their values.
Bug Fixes
- Fixed a loooong standing bug with jsqsh's inability to connect to Oracle.
- When reading input from a file (-i) jsqsh was not handling multi-byte
unicode characters properly.
JSqsh 2.2
You didn't ask for it, but you're getting it anyway. JSqsh 2.2 is here! Below are new and shiny features, however I'd also like to note that a lot of work went into updating the jsqsh wiki. There is now a full set of reference documentation available for all commands, variables, and additional help topics.
New Features
- New platform support (Mac OS X X86_64, PowerPC 64bit (BE and LE) and s390x)
perfectdisplay mode will try harder to avoid resizing numeric columns\gooptions may now be provided after semicolon e.g.select * from foo; -m vert- The
datetime_fmtnow allowsSto indicate fractions of a second,
not just milliseconds, so you can now carry the precision out further. - Added new
exit_onconfiguration variable. This variable indicates
which commands, should they error, will cause the jsqsh session to
exit. - Command infrastructure is no pluggable so you can provide jars that
add additional commands into jsqsh. - Query time is now carried out to milliseconds precision
- The visual query timer is now enabled by default ('cause I like it!).
To turn off use\set timer=false - Upgraded jline to 2.13, and added proper handling of ^C while editing
- Internal documentation has been refreshed, and now is nicely formatted
to the current display width and using bold and underscore. The
online wiki documentation is now auto-generated using the\wiki
command. Check out the awesome new reference documentation at:
https://github.com/scgray/jsqsh/wiki/Reference - The
\helpcommand now takes a --format argument to select how you want
the help formatted - The new ${auto_pager} variable controls whether or not help is
automatically send through a pager (e.g. "more")
Bug Fixes
- Fixed NullPointerException when stored proc output parameters return a
NULL value. - Fixed nested quotes in
CALLstatements likeCALL MYPROC(?='Scott''s book') - Fixed bugs with word wrapping in
perfectdisplay mode - Handles failure of the driver to return the value for a column more
gracefully (instead of stopping the whole result set, just prints
*ERROR*in the column. - NullPointerException when calling a stored procedure in Sybase
- Stop print DB2 warning about "statement succeeded". It is annoying.
- Command line arguments with spaces in the value were not
handled properly - Got rid of unecessary "*" when prompting for passwords
- Fixed NPE if no password is provided at password prompt
JSqsh 2.1.0
JSqsh 2.1.0 is now available. This version includes a significant number of new changes and bug fixes. Here are some highlights of the release, but you can find a complete list here.
- Interactive set up wizards for configuring drivers and connections
- Improved portability: there are no more platform specific builds, just install and run it!
- Each driver may not have its own separate classpath
- Support for executing stored procedures with output parameters
- Improvements to metadata commands (like \describe)
- They are now contextual based upon the current database or schema of the session
- Support for quoted identifiers like "My Table"
- Object names no longer need to be entered in the same case as stored in the database catalogs
- History recall can now reference previous executions using relative numbers (!-2 means retrieve the query executed two times ago)
- The meaning of the exit status of jsqsh can be configured
- Smarter recognition of semicolon as a command terminator inside of PL/SQL statements
- A number of bug fixes