# Welcome to JSqsh!

JSqsh (pronounced jay-skwish) is a Java re-implementation of a tool that I originally authored called sqsh (also hosted on SourceForge). The original sqsh was a Sybase-specific console based tool (i.e. non-graphical) that combined the ability to query the database with much of the functionality of a shell, such as piping the results of queries out to external programs (grep, more, etc.), expanding variables, redirecting output to files, command line editing, etc.

Jsqsh attempts to re-create the most frequently used features found in sqsh but, with the use of JDBC (Java's database driver architecture), allow it to be used against any database that provides a good JDBC driver. JSqsh attempts to shield the user from much knowledge of Java and JDBC as much as possible, so it should be suitable for the average user to use, but there are a couple of places in which some knowledge of the basics of JDBC are useful.

A user pointed out a pretty basic bug in the 1.4 release in which saved connection names provided on the command line are not recognized (I'm not sure how I missed this one in my own day-to-day use!). It takes me a lot of effort to package new binary releases of jsqsh so I have made available a "patch" that fixes this issue.

The patch is in the form of a single jsqsh.jar file. To deploy the patch just do the following:

• Copy the file into one of the following locations:
• Windows: \path\to\jsqsh\lib
• Unix: /usr/share/jsqsh

The next time your run jsqsh, it should indicate version 1.4.1.

## JSqsh 1.4 Available!

JSqsh 1.4 is now available. Here are some of the highlights of the big changes.

• Added new line input reader "JLine". This provides much of the command line editing functionality without the need for a native shared library.
• New command line options for reading additional configuration directories and driver definition files.
• New display styles "isql" and "vertical" to better follow the old sqsh behavior.
• Exit code now reflects the success or failure of the SQL executed, making jsqsh more usable for scripting.
• Added DB2 z/OS, H2, and IBM DB2 SQL Skin for Sybase driver definitions
• The "perfect" display style no longer limits total rows and instead samples \${perfect_sample_rows} rows before display to try to optimize the display style.
• New build system using 'cmake' for the JNI portion which makes it easier to build it on Windows. As a result there is now a Windows 64bit build.
• Other small improvements and bug fixes.

Refer to the What's New? page for details.

## JSqsh != Sqsh

It is important to note that jsqsh is not a perfect recreation of sqsh, so please do not blindly run scripts explicitly build for sqsh against jsqsh without some thorough testing!

## Self Documenting

JSqsh attempts to be as self documenting as possible, so if at any time you have any questions about how to use it you can execute the \help command at the prompt and get a list of help topics:

1> \help

In addition you can visit the Getting started page for a quick tour of getting started with jsqsh.