Skip to content

jsqsh-2.3

Latest
Compare
Choose a tag to compare
@scgray scgray released this 26 Feb 14:26
· 69 commits to master since this release

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 \import command, 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 \go to 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, simple and tight. These styles are
    identical in behavior to pretty and perfect (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 \connect or on the
    jsqsh command line to explicitly set a variable contained in a JDBC
    URL by name, like so:

      \connect -Vdb=myDb -dmydriver
    

    In 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 \read command to allow you to set variables using input
    provided by the user

  • The csv display style may now be configured via the new configuration
    variables ${csv_delimiter}, ${csv_quote}, ${csv_quote_esc}, and
    ${csv_null}

  • The \go command 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.