SQuirreL SQL Client: Version 3.0 released

3.0 (2/21/2009)


Dataimport Plugin:
* SuggestColumns: if columns in database and in the first line of the file
are equal, they are matched for the import.

Sybase Plugin:
* New ExceptionFormatter for SQLWarnings: better viewing warnings while the parameter
showplan is on (set showplan on)

Look an Feel Plugin:
* Made Nimbus look and feel available (needs at least JDK/JRE 1.6.0_10)
* Made Metal look and feel with Ocean theme the default (used at first start up).
* Added warning message that look and feels other than Metal may cause perfomance and/or functional problems

Updated Italian translation (Ivo Neri), Chinese translation (xpdz), French translation (Erwan Duroselle)

New user interface layout: Tabbed layout

Hibernate Plugin:
- Cleaned up details display in mapped objects tab: Now every tree node displays an appropriate details table.
- Added hint to solve StackOverflowError caused by logging that may occur when connecting to a Hibernate configuration.

Object tree search (Feature request 2004240):
Above the Object tree is a text field and a find button.
The search string has to be the exact simple (unqualified) name of an DB object or may contain placeholders ("%" or "_").
The text field supports code completion.
A filter button allows to apply the search string as Object tree filter.

Object tree filtering:
Multiple (comma separated) Object tree filters can be defined. Filter conditions can be excluding oder including.
Better support for placeholders "%" and "_".
See "Session Properties"/"New Session Properties" dialogs --> Tab "Object Tree".

Graph Plugin:
- Qualified table names can now be displayed. Use the right mouse menu on graph background.

Edit Extras Plugin:
- Improved handling and look of Escape date dialog.

Graph Plugin:
- New entries in table's popup menu: "Copy table name" and "Copy qualified table name".
- Columns of all tables in a graph can now be ordered at once. Use the right mouse menu on graph background.

New Plugin: Smarttools by Michael Romankiewicz
- Searching for tables that do not have a primary key or unique index or index.
- Searching for non nullable columns that contain null values. Some DBs e.g. Firebird can be tricked to have this inconsistency.
- Changing values database wide according to specified criteria.
For more information see the Plugin's help.

New Plugin: Firebird Manager by Michael Romankiewicz
- Storing and restoring Firebird DBs
- Managing users and roles for the Firebird RDBMS
For more information see the Plugin's help.

- Aliases can be displayed as list or as tree.

- A new preference for choosing Locales is available in Global Preferences -> General tab. This allows you to
set your preferred locale, and if an optional translation is installed that corresponds with the preferred
locale, then restart and the changes take effect.(No longer necessary to hand edit the start script)

- Copy as "SQL WHERE" / "UPDATE-SET" / "INSERT-VALUES" statement function in tables
Tables offer right mouse menu to copy WHERE, UPDATE-SET or INSERT-VALUES clauses of selected data to clip board.
Works like the existing "Copy as SQL IN statement" function.

- New Plugin: SQLReplace by Dieter Engelhardt
This plugin replaces a set of variables before a statement is executed.
The variables to replace can be defined at the Plugin's Global Preferences tab.

- Added a preference option to allow the selection of items in lists to change while activating
the popup menu on a single right-mouse button click. For example, without this, you need to
select an object in the tree with a left mouse button click, then press the right mouse button
to activate the popup menu.(See Global Preferences -> General -> Select On Right Mouse Click)

Data Import Plugin: It now warns the user when importing data into an existing table, that it's current data
will be truncated first.

DBCopy Plugin:
- Added support for mapping the DISTINCT source column type for copying data from PostgreSQL

DB2 Plugin: Lars Heller provided a patch to add support for XML column types in SQuirreL via the
DB2 Plugin (tested against DB2 v9.5 LUW)

Oracle Plugin:
- Added validity (VALID|INVALID) field to trigger details tab for triggers.
- Allow the user to configure whether or not to show the syntax error offset in
the SQL Editor. This feature creates a user-defined function called
SQUIRREL_GET_ERROR_OFFSET, which can be disabled.
- Added ability to recognize "create package" and "create package body" statements.

PostgreSQL Plugin:
- Added support for PostgreSQL(8.3.x) new XML type.

Contributions from Daniel Regli and Yannick Winiger:
- Menu: added a new "PostgreSQL" menu to the object tree and the session menu for
PostgreSQL-specific functionalities.
- Vacuum: added visual (dialog) support for the PostgreSQL-specific VACUUM statement for
garbage-collecting a selection of tables or the whole database.
- Explain: added an additional SQLResultExecuter to the sql panel that shows
the query plan of executed statements.

Refactoring Plugin:
- Fixed bug which caused column comment alter statement to be generated even when no column column
change was made.

- Don't try to order the list of tables to be dropped (forcing FK info retrieval)
when there is only one table being dropped.

- Contributions from Daniel Regli and Yannick Winiger:
Added new Refactorings (All new refactoring dialogs can now be closed with the ESCAPE key):
- Rename Table
- Add/Rename/Drop View
- Add/Modify/Drop Sequence
- Add/Drop Index
- Add/Drop Foreign Key
- Add/Drop Unique Constraint
- Add Lookup Table
- Add Auto Increment
- Merge Column
- Merge Table

- Refactoring, scripting for Intersystems Cache DB:
Made Refactoring and scripting functions available for the Intersystems Cache DB by activating its
Hibernate dialect.


SQL Replace Plugin: Fixed a bug that caused patterns such as $P{startDate} to throw an exception.

Add/Edit Alias window did not resize properly

SQL Scripts Plugin: On some DBs (e.g. MySQL) "Store result of SQL in table"
did not work for SQLs that returned a lot of rows.

Graph Plugin: Table's right mouse menu "Add Parent tables" did add a parent more
than once when more than one foreign key to the parent existed.

Graph Plugin: Refresh didn't work for newly created constraints

Fixed several bugs which made it impossible to work with SQLite.

Fixed a bug which made it difficult to see text that was being edited in a table.

2609090: Auto update fails if "empty" change list is validated

2480365: Plugin loading fails when installdir has spaces

2220792: SQLite: content not editable

2184379: (SQuirrel client 2.6.6 fills up 52 gigs of log file space). Added a new log
appender that is based on file size rather than time.

2119937: Windows EOL chars (CRLF) are converted to Linux EOL (LF).

2104422: Fixed some potential bugs (Thanks to Hashim Kubba)

2102894: Missing Scale Placeholder in Sql server dialect. This causes script generation and dbcopy
targeting MS-SQL server to produce decimal columns without the scale attribute (that is, decimal(7) instead
of decimal(7,5))

2092902: Focus remains on hidden session window for Alt-Arrow. Removed code which was a
work-around for a bug in java 1.3, that has since been fixed and was actually producing a
bug seen in java5 and java6, where the Alt-RightArrow key shortcut switched session windows
into the foreground without giving them focus. Thanks goes to Johnathan James for the

2091569: FAQ is missing its images

2049336: Make Editable disappear from SQL/results tab

2018512: DB2 timestamps still don't work when milliseconds are zero. Patch submitted by Daniel Stränger.

2018018: (Bug in FormatSql function) Formatter now uses platform-specific EOL char sequence.

2013346: export csv with option "carriage return + linefeed"

1995728: Unable to switch database

1958881: (Unable to see source of database views) Adjusted the query for view source to use
underlying system tables instead of INFORMATION_SCHEMA.VIEWS, since this view cannot handle views
that are greater than 4000 characters.

1968807: Unsigned INT problem with IMPORT FILE functionality

1968270: Displaying unsigned INT as signed INT in column

1845987: PostgreSQL interval types are not displayed

1840266: Create Table Script sets varchar columns to 8000

1830649: Focus Loss

1824534: Constraint created twice

1902611: (Oracle) Don't fail on SQL-Plus "SET ..." commands in SQL script; Now, the Oracle plugin skips over

1876352: (DB2) Incorrect TIMESTAMP in create data script (loss of precision - nanosecond component - also
affected other databases.

1861402: (Informix catalog switching doesn't work correctly)
- Better catalog switching behavior for databases that support catalogs. Now if a connection is made
without specifying the catalog, a place-holder
catalog ("None") is inserted into the catalog drop-down menu and removed once a catalog is selected.
- Fixed a race condition that caused the tree to be refreshed before data was refreshed from the database
when the catalog was switched.
- For Informix, setCatalog seems to have no effect, so now an explicit DATABASE <catalog name> command is

1848924: Sybase object browser contents not displayed

1769599: fix for permission problem with Windows Vista. Now we create our temporary path file in a temporary
location that the user should always be able to write to. Thanks to user aberdeen61 for contributing the

1596240: Fixed bug when displaying HSQLDB->Objects->Content, where contents are not shown and exceptions are
thrown because tables are not being qualified with the schema name.

1541325: (Derby) Connection doesn't close when ending session - thanks goes to Alex Pivovarov for the
patch that fixed the issue.

Bug-Fix for bug that caused Frontbase indexes not to be displayed in the indexes tab, for tables in the
Object tree.

Fixed identifier qualification in Progress - tested on OpenEdge 10.1C. Now only schema is pre-fixed to
identifiers, instead of catalog and schema.

Code Completion Plugin:
- Made column completion available for databases/JDBC drivers that support catalogs and/or schemas
but don't provide catalog or schemas in their column meta data. For example some versions of MySQL
show this behavior.

DBCopy Plugin:
- Only attempt to order the tables being copied if there is more than one table in the copy set.

Changing to another window using Alt + left/right arrow did not properly set focus.

Hibernate Plugin:
- Class names in completion list could change from fully qualified to simple
while scrolling through the completion list.
- Fixed identifier qualification in Progress - tested on OpenEdge 10.1C.
Now only schema is pre-fixed to identifiers, instead of catalog and schema.
When a statement like "from Kv k where k." was completed the fields for k. would come from
any arbitrary mapped class which name started with Kv

Refactoring Plugin: When generating DROP TABLE statements, Frontbase requires
CASCADE or RESTRICT. Now we append CASCADE to the DROP TABLE statement.

1830649: Focus Loss
1820792: Sybase ASE - table not shown in object browser
1821354: Changing default value of a column in Derby does nothing
1820214: 2.5.1 DB aliases do not transfer properly to 2.6.1
1820020: modified tables aren't sorted
1815667: Create Table Script does not include column defaults

Syntax Plugin: Fixed memory leak which caused sessions not to be garbage

Bug-fix for plugin unloading where unloading a session plugin did not prevent
it from binding to new sessions.

Posted by Rob Manning 2009-02-23