Release History
Show list of all buildsBuild 127 (2020-08-22)
Bug fixes
- It was no longer possible to run GRANT or REVOKE statements.
Build 126 (2020-08-09)
Enhancements
- WbExport will now abort if a text export is started without a quote character but a quote character would be needed.
- For PostgreSQL, subscriptions and publications for logical replication are now shown in the DbTree and DbExplorer.
- For PostgreSQL, the attribute of IDENTITY REPLICA is now shown in the generated DDL.
- "Make uppercase" and "Make lowercase" now also work if no text is selected. In that case, (only) the character at the cursor is changed
- Passwords can now securely be encrypted using a master password. The old password encryption is no longer supported.
- The properties base profile storage (wb-profiles.properties) is now the default. The old XML format is still supported.
- WbVarDef now supports conditional execution.
- WbCopy now supports views as the source by using -includeViews=true.
- The result panel is now automatically displayed if it was minimized before running a statement.
- It's now possible to configure italic and bold for syntax highlighting
- For SQL Server, partitioning information about a table is now included in the generated DDL
- WbImport can now import all sheets of a spreadsheet into the same table when -sheetName=* is specified together with -table
- The annotation @WbResultAsText can now be used to turn the "text mode" display on for multiple statements
- For PostgreSQL, the "match mode" of foreign key constraints is now displayed and included in the generated DDL
- A new Windows launcher is available that removes the need for a separate 64 and 32 bit executables and can optionally download a JRE
- It's now possible to optionally open the saved file when using "Save As"
- It's now possible to use a special variable in WbImport to assign the input file's line number to a column.
- It's now possible to cycle through the result tabs using a keyboard shortcut.
- When exporting a single table from the table list (Database Explorer or DbTree) it's now possible to select the columns to export.
- It's now possible to display results in GUI mode as "text" in the messages area.
- It's now possible to define a SQL expression to be used in the INSERT statement that WbImport uses to apply SQL functions on the input value.
- Selecting foreign key values is now also supported for DELETE statements.
- The list of shortcut keys can now be exported (with the usual "Save As" formats)
- Invoking code completion in the WHERE clause without a column now displays all columns of all used tables of the query
- For MySQL and MariaDB versions that support them, check constraints are now shown in the generated DDL
- Recently opened files are now accessible through the "File" menu.
- For PostgreSQL, default values on columns of views are now shown in the generated DDL
- For HSQLDB 2.5, the new options for temporal tables are now shown in the generated DDL
- Added new command WbSetSchema to change the current schema using the driver's JDBC API
- For PostgreSQL 12, the new computed columns are now shown in the generated DDL
- The tooltip of a column header now always includes the table name if available
Bug fixes
- For Redshift, tables sources were not always displayed
- When using WbImport with mode=upsert and a table that has a multi-column primary key, the wrong MERGE statement was generated for SQL Server, HSQLDB and DB2
- When exporting to ODS, the generated files could not be opened with Microsoft Excel.
- Using nested WbIncludes failed with an exception
- When invoking code-completion in the ON part of a JOIN, not tables where shown.
- When selecting a global SSH configuration for a connection profile, it was no longer possible to revert to a "non-global" configuration
- When specifying a SSH Tunnel without a password and no keyfile, SQL Workbench did not prompt for the password
- For WbCopy, when using -createTarget=true together with -targetSchema the new table was created in the wrong schema
- Fixed an issue when loading the SQL Server JDBC driver with certain versions of OpenJDK
- For SQL Server, when including the CREATE TABLE statement in the output when exporting data as SQL the export failed
- WbDataDiff did not work properly if the key columns contained NULL values.
- When exporting or saving data, it was not possible to enter the filename manually into the dialog.
- Month names were case sensitive when using -dateFormat or -timestampFormat with WbImport
- For Oracle 18c and later, index information wasn't displayed correctly.
- For Oracle 18c and later, DDL for identity columns wasn't generated correctly.
- For Oracle, the generated IGNORE_DUP_KEY hint was incorrect if the order of the PK columns was different to the column order of the table.
- Assigning multiple variables with WbVarDef was not possible if -variable was used.
- For Redshift, finding tables on the search path was no longer working.
- For PostgreSQL, using the JDBC driver 42.2.11, the value for columns defined as "timestamp with time zone" could not be retrieved any longer.
- The cursor position wasn't calculated correctly, if real tabs where used in the editor (regression from 125.6)
- Sorting columns defined as arrays in the result did not work properly.
- The new Windows launcher (introduced in 125.5) did not work if run from a directory with spaces in the name
- Fixed some problems with the cursor position in the editor with High-DPI displays (on Windows)
- For PostgreSQL, the DDL for partitioned tables with sub-partitions was not generated correctly
- Using WbImport with temp tables as the target did not work with PostgreSQL and SQL Server
- When using UCanAccess certain types of "linked columns" are now displayed correctly.
- For DB2 on AS/400 the CSID attribute was also generated for data types where it wasn't relevant.
- Individual statements were not detected correctly in the editor if the text started with a semicolon.
- "Create SQL List" did not work properly if only a part of the first or last line was selected.
- For PostgreSQL, the dependency display of trigger functions wasn't working any more.
- When using Page Down when the editor text was shorter than the number of lines, the display was corrupted.
- When closing the macro dialog while macros were filtered, only the visible macros were saved.
- For PostgreSQL, check constraints and default values were no longer displayed correctly in the generated DDL
- For XLSX exports, using -infoSheet did not work any longer
- When using -endRow with WbImport, the following rows weren't exported, but the input file was still read until the end
- Filtering the list of macros did no longer work correctly.
- For SQLite, all values are now retrieved as strings to workaround problems with the lack of explicit data types.
- Common table expressions containing DML are now correctly identified when the "Read Only" option is selected in the connection profile.
- The XML file generated by WbSchemaDiff was incorrect when multiple views need to be dropped.
- The SQL formatter removed trailing semicolons if only a single statement was formatted.
- Fractional seconds were not correcly formatted in timestamp literals in generated SQL statements.
- When editing a result with columns from multiple tables where the columns were not fully qualified, an exception occurred rather than a usable error message.
- Conditional execution of Workbench commands using -ifDefined and -ifNotDefined behaved the same as -ifEmpty and -ifNotEmpty
- For Postgres, infinity values for timestamp with time zone could not be read from the database.
- If the JDBC driver returned LocalDateTime or LocalDate values, those weren't formatted properly in SQL statements or text files.
Build 125 (2019-05-08)
Enhancements
- All additional libraries are now expected in the directory "ext".
- In the DbExplorer, using "Show Rowcounts", now displays the row counts as a new column in the table list.
- WbDataDiff now also supports -clobAsFile when generating SQL statements
- For WbExport and WbDataDiff -clobFileThreshold has been added
- For MariaDB 10.3, sequences are now displayed in the DbExplorer
- The "Manage Macros" dialog now also supports filtering of the macros.
- For Oracle, the generated DDL for tables now contains the definitions of extended column statistics.
- It's now possible to control the behaviour of WbDefineVar when NULL values are retrieved through a SQL query
- It's now possible to specify a message with WbEcho that is displayed even if verbose logging was turned off (e.g. using -verbose=false for WbInclude)
- For WbExport and WbImport, it's now possible to define the values for -quoteChar and -delimiter using unicode escape notation (e.g. \0008)
- WbDefineVar now supports the -silent option so suppress the details about the defined variable
- For conditional execution of some SQL Workbench/J commands, checking for the (non) existence of files or tables is now supported
- For Postgres, comments on foreign key constraints are now displayed in the DbExplorer and the generated DDL source
- Confirmation to close "Other tabs" can now be configured separately.
Bug fixes
- For SQL Server, DateTime values were not displayed correctly
- For Oracle the source of materialized views using ON PREBUILT TABLE was incorrect.
- Relative file names were treated differently by the SQL Workbench commands and the ifFileExists check.
- For MySQL, the source of triggers wasn't displayed.
- Copy to clipboard did not use the format string for decimal values
- For Oracle, using -mode=upsert with CLOB columns did not work for WbImport
- For some JDBC drivers, the console did not display the column's alias, but the real column name in a result
- For Postgres, nesting dollar quoted strings did not work.
- When retrieving XML columns using a driver that supports the JDBC API getXML() NULL values would result in an error.
- For Postgres, the generated source for an extension in the DbExplorer was not correct.
- The detection of the DB2 version was no long working correctly
- Numbers that can't be stored in Excel's file format are now exported as strings rather than numbers
- For Oracle, certain timestamp values were incorrectly exported.
- For Oracle 12, statements using "WITH FUNCTION" or "/*+ WITH_PLSQL */" to create inline PL/SQL functions could not be executed.
- WbCall did not display values for OUT parameters for all data types.
- For Oracle, the status of foreign keys (enabled, validated) was no longer displayed in the DbExplorer.
- For PostgreSQL, retrieving the policies for row level security was not working for versions prior to 10 any more.
- When using -profileStorage wih a filename without a path, files located in the config directory where not found
- Generating a SQL script using WbDataDiff on tables with timestamptz columns in Postgres did not work
Build 124 (2018-08-20)
Enhancements
- WbExport can now write .xlsm files ("XLSX with Macros")
- In the auto-completion popup for columns, the column's data type is now displayed
- For PostgreSQL, row-level policies created for a table are now shown in the generated DDL
- Added auto-completion support for Oracle's SHOW command
- Added auto-completion support for PostgreSQL's SHOW, SET and RESET commands
- Added support for new features in PostgreSQL 11
- Improved support for Greenplum
- It's now possible to lock a result not only through the GUI, but also through the annotation WbKeepResult
- It's now possible to define global SSH hosts that can be selected for each connection profile
- It's now possible to display the column's table in a query result if the JDBC driver provides that information
- When importing Excel sheets it's now possible to disable the automatic re-calculation of formulas
- It's now possible to use multiple profile files by specifying a directory through the -profileStorage parameter
- It's now possible to define environment variables for the programs started through WbSysExec
- For PostgreSQL, user defined collations are now shown in the DbExplorer and DbTree
- For PostgreSQL, Oracle and SQL Server time zone information can now be displayed for columns that contain that information (TIMESTAMP WITH TIME ZONE or datetimeoffset)
- For DB2 for I, variables are now shown in the DbExplorer and DbTree
- For DB2 for I, the character set of columns (CCSID) is now shown in the generated DDL statements.
- It's now possible to use the schema filter expressions from the connection profile as parameters to the JDBC API call to speed up schema retrieval.
- It's now possible to define more flexible filters for the DbExplorer's table list
Bug fixes
- For Postgres, WbCopy was not able to write values into TIMESTAMPTZ column.
- For Oracle versions 10 or lower, the source of materialized views was no longer displayed.
- For Oracle, when displaying the procedures in the DbExplorer and choosing "*" for the schema, the procedure owner was no longer shown in the list of procedures.
- For SQL Server, the DROP statement generated for sequences was not correct.
- If the option "Always allow "Execute selected" was disabled, directly after opening the window "Execute Selected" would still run all statements.
- Running a macro by using the macro's name did not work if there was a comment preceding the macro's name in the editor.
- When a result was locked ("Keep result") subsequent new result tabs were not always activated automatically.
- When connecting to a profile with a corrupted workspace, the main window was not usable any more.
- Additional libraries were no longer loaded when starting SQL Workbench/J using "java -jar sqlworkbench.jar"
- When multiple columns where selected in a result, the "Filter by value" was applied using only the first selected column.
- The -commitEvery parameter for WbImport and WbCopy did not work
- When using WbConnect with nested WbIncludes, the connection would not be closed if an error occurred
- When using "Check foreign keys" in the dialog to drop multiple objects, non-table objects were removed.
- "Save As" did not use the profile's default directory
- The default directory of the profile was not used when opening files
- Implemented a workaround for SQLite, so that invalid DATE values could be read from columns defined as DATE.
- When using "quoteCharEscaping=duplicate" with WbImport, empty strings or strings that only contained a single (escaped) quote character were not imported correctly.
- In case of an error, the cursor in the editor was no longer moved to the error position.
- For PostgreSQL, the generated DDL for foreign servers was incorrect
- For Oracle, NUMBER columns without precision were exported with a decimal separator to Excel files.
- Showing rowcounts in the DbExplorer did not work.
- For Oracle, the result of functions returning a refcursor was not displayed correctly.
Build 123 (2017-09-25)
Enhancements
- It's now possible to jump between statements in the editor.
- For Postgres global objects are now shown in the DbTree and DbExplorer
- WbExport now supports specifying a format pattern when exporting numbers to text files.
- Expandable macros now also support placeholders for the selected text and statement.
- WbDataDiff can now optionally create INSERT statements for tables that do not exist in the target database.
- Added support for new Postgres 10 features (partitioning, identity columns)
- For Firebird, DOMAINs are now included in the dependency display
- WbImport now also supports the -skipTargetCheck option
- It's now possible to define a default directory for a connection profile that is used e.g. for WbInclude or WbExport
- The default encoding used for files in the editor can now be changed in the options dialog
- WbImport and WbExport now support the -locale parameter to define the locale used for parsing and formatting dates and timestamps
- For Postgres, the type of an index (btree, brin, gist, gin, ...) is now shown in the DbExplorer
- For Postgres, TYPEs are now included in the dependency display
- The formatting of numbers can now be controlled in more detail
- For SQL Server and MySQL the USE command now supports code-completion
- Generated DDL scripts now only contain commit statements if the current connection is not set to auto-commit (and the DBMS supports transactional DDL)
- For Postgres, a tablespace other then pg_default will now be displayed in the generated source for tables and indexes
Bug fixes
- SQL Workbench could not be started with Java 9
- BLOB and NVARCHAR literals were not handled correctly when formatting a statement
- Replacing variables inside other variables did not always work
- WbSchemaDiff did not handle multiple indexes on the same column list correctly
- It was no longer possible to connect to a SAP DB
- Navigating foreign keys from the result set did not work for non-numeric data types
- Made saving of Workspaces more robust against errors.
- For SQL Server, if integratedSecurity=true was used, SQL Workbench still prompted for a password
- Made the SQL formatter more robust against useless parentheses around sub-selects
- When an expandable macros was invoked through the menu, the cursor position was not correct when using ${c}
- It was not possible to change the statement/query timeout in GUI mode using SET TIMEOUT
- Detaching a result was longer possible in build 122.2
- The option "Remove comments" was not working with databases are using non-standard characters to quote identifiers
- For Oracle, the display format for timestamps was not used for "timestamp with time zone" values
- SSH tunneling did not work with Oracle when using a service name in the JDBC URL
- If the MacroPopup was open and a profile with a different macro file was loaded, the macros in the popup weren't re-loaded
- Fixed the handling of long column names in the dialog to select columns
- WbCopy did not work if there was another object (e.g. a sequence or view) in the source database with the same name as the table specified with -sourceTable
- The dialog to select columns for copying them to the clipboard did not display all options on Mac OSX.
- Changing between connection profiles that had a non-standard macro file and profiles using the standard macro file could lead to a situation where the standard macros were no longer available.
- "Put SELECT into Clipboard" did not work any longer in the DbTree or DbExplorer
- Using -sourceDir to import multiple files into a single table did not work if -fileColumns was not specified
- WbDataDiff failed when using -includeDeletes=true and the comparison was done between two DBMS that stored object names differently (e.g. UPPER vs. lowercase)
- The parameter -varFile did not work anymore
- For Oracle, the "realplan" option for autotrace did not work for queries starting with a common table expression (WITH)
- For Oracle, NUMBER columns with a negative scale e.g. NUMBER(10,-2) were not displayed correctly
Build 122 (2017-02-04)
Enhancements
- Conditional execution of Workbench commands now support -isDBMS and -isNotDBMS
- Added basic support for EXAsol
- Added support for SSH tunneling per connection profile
- When loading a SQL script it's now possible to automatically detect the encoding
- It's now possible to filter the output of WbVarList
- It's now possible to pin a result tab so that it doesn't get closed even if append mode is not enabled
- WbExport, WbImport, WbCopy and WbConfirm now support conditional execution
- WbTriggerSource now also supports writing the source to a file
- For Postgres, dependencies between triggers and tables are no shown in the DbExplorer and DbTree
- For Postgres, functions defined as "returns setof refcursor" are now processed correctly when using "select * from function()"
- For Postgres, it's now possible to import values into array columns if the source data is formatted as a Postgres array literal (WbImport and WbCopy)
- A new annotation (@WbCrossTab) is available to create simple crosstabs (aka "pivot") from query results.
- Improved editing of Postgres' hstore result columns.
- For SQL Server, the object dependencies now include named default constraints and custom data types
Bug fixes
- For Oracle the DDL for tables using reference partitioning was not generated correctly
- In batch mode when specifying a connection profile using -profile, the setting to ignore drop errors from the profile was ignored
- The width of the DbTree was limited if the DbExplorer panel was also displayed
- For HSQLDB, BIT columns were not displayed correctly.
- For Oracle, the DEDUPLICATION option was not shown for LOB columns
- Auto completion did not overwrite a partial table (or column) name if that part was a SQL keyword.
- Activating the object list filter in the DbExplorer by using the toolbar button did not work reliably.
- Passing connection properties using -connectionProperties to WbCreateProfile did not work
- When using a profile specific macro file, opening a new window did not always work.
- When using an Oracle 12.x JDBC driver, materialized views were always reported as missing with WbSchemaDiff
- It was no longer possible to select "As Is" for the built-in SQL formatter
- Several features in the DbExplorer did not work for Amazon Redshift
- Feedback from connect scripts was not always shown in the message tab
- Error messages were not shown for errors that occurred in connect scripts
- For Postgres, the remarks for indexes were not retrieved correctly if indexes with the same name existed in different schemas
- The formatter did not treat the := operator properly for MySQL
- For Postgres, the source of a table was not shown when an old (unsupported) version of Postgres was used
- For SQL Server (and other DBMS supporting schemas and catalogs) the list of schemas was not properly refreshed when the database was changed in the DbExplorer's dropdowns
- For Oracle, value literals for RAW columns where not created correctly
- For Oracle, -clobAsFile for WbExport was not working for XML columns
- For Oracle, overloaded procedures inside packages where no longer displayed.
- For SQL Server, the source of procedures, functions and triggers was not displayed correctly in the DbExplorer for databases other then the default database of the connection.
- When using -configDir in console mode the connection profiles were still loaded from the default location.
- For Postgres, when generating scripts for tables and sequences the owner column for a sequence was not correctly generated.
Build 121 (2016-07-31)
Bug fixes
- Some DDL statements were not generated properly when changing tables or indexes in the DbExplorer
- For Oracle, columns defined as TIMESTAMP WITH TIME ZONE or TIMESTAMP WITH LOCAL TIMEZONE where not displayed correctly
- It was no longer possible to use a timestamp format without time for WbImport
- When loading a new macro file, the macro menu was not updated.
Build 120 (2016-07-17)
Enhancements
- It's now possible to delete variables using wildcards
- It's now possible to test the connection from the profile dialog
- For Postgres, the generated source code for functions and custom aggregates now contains the new PARALLEL settings for Postgres 9.6
- It's now possible to show a quick filter in the macro popup window
- When searching for a JDBC driver class in the driver's jar file, available service registrations are used to speed up the searching.
- It's now possible to disable icons in menus
- For HSQLDB 2.3.4 synonyms are now displayed
- It's now possible to configure the buttons on the toolbar
- It's now possible to restore recently closed editor tabs
- For Progress OpenEdge, squences and synonyms are now shown in the DbExplorer
- It's now possible to associate variables with the connection profile and the workspace
- For SAP HANA the source for synonyms are now shown
- For SAP HANA dependency for tables, views, triggers, procedures and sequences are now shown in the DbExplorer and DbTree
- A new command (WbGenerateFKScript) is available to generate the DDL for only the foreign key constraints.
- For DB2 10.5 indexes based on expressions are now shown correctly
Bug fixes
- For SQL Server, the source code for user defined object types with columns was incorrect.
- For DBMS supporting catalogs and schemas, auto completion for large schemas was slow.
- Fixed a problem where in rare cases, closing an editor tab could hang the application.
- Ignoring the "Max Rows" setting in the DbExplorer's table data did not work any more
- WbListMacros, WbDeleteMacro and WbDefineMacro were always using the default macro file
- Timestamps with microseconds (.SSSSSS in the format) where not imported correctly with WbImport
- For Postgres, the LEAKPROOF attribute was not included in the generated source code for functions
- WbSchemaDiff incorrectly combined all tables to be dropped in a single tag
- For Postgres, the format of hstore literals was not correct when exporting data as SQL statements
- For Postgres, hstore columns could not be edited in a query result
- The ALTER TABLE OWNER TO statement for Postgres was not created correctly
- It wasn't possible to use -mode=Upsert or -mode=InsertIgnore with WbCopy
- Parsing of comments in SQL statements is now more lenient with invalid (nested) comments
- When changing the position of SQL tabs with files loaded, the Workspace was not saved properly
- For Progress OpenEdge, the SQL generated for sequences was invalid
- For Postgres, the implicit index for an exclusion constraint was incorrectly added to the source of the table
- The format of a hstore and array literals was not correct for generated SQL statements
- For Oracle procedures from packages that contained only procedures without parameters were not displayed.
- Implemented a workaround for the MariaDB JDBC driver that returns invalid object type names for tables ("BASE TABLE" instead of "TABLE")
- Generate "DROP script with dependencies" was no longer working in the DbExplorer or DbTree
- When using SQL Workbench in batch mode, passing quoted parameters on the command line did not work properly
- The DDL for tables was not displayed when using Amazon Redshift
- Using sqlwbconsole.sh together with -command or -script on a headless system did not work
- The display for LVARCHAR and DATE columns was not always correct for Informix
- Warnings that were reported by the JDBC driver after establishing the connection were sometimes shown in the generated DDL in the DbTree
- The DDL for sequences in Oracle did not reflect the values for CYCLE and ORDER
- Running PL/SQL in Oracle did not work if the option "Remove comments" was enabled in the connection profile
- When using "Create DDL script" in the DbExplorer, the source for materialized views was generated twice
- With certain Oracle driver versions, TYPEs where displayed twice in the DbExplorer or the DbTree
- When exporting to text files, values containing the line delimiter were not quoted properly
- With SQL Server, it was not possible to drop indexes from within the DbTree
- Passwords are no longer trimmed
Build 119 (2016-01-31)
Enhancements
- It's now possible to display the column's data type in the header of the result table
- When importing all files from a directory, WbImport now provided pre-defined variables with the filename
- It's now possible to configure auto-saving of external files independently from auto-saving the workspace.
- A new command WbMessage to display a simple message is available.
- It's not possible to search text in all open editors (Tools -> Search all tabs)
- For some DBMS, the DbTree and DbExplorer now show the dependencies between objects
- For DB2/iSeries table and column comments can now be retrieved from the system catalogs instead of using the JDBC driver.
- For Postgres it is now possible to manually control transactions using BEGIN .. COMMIT when the connection is set to autocommit
- The list of tables in the DbTree is now sorted to work around bugs in JDBC driver that do not properly sort the list of tables
- For DBMS that support it, two new modes have been added to WbImport: -upsert and -insertIgnore using native "UPSERT" functionality if available
- For Firebird the SQL source of external tables is now generated correctly.
- An new command WbGenerateImpTable is available to infer the structure of a table from an import file
- The command line parameter -vardef has been deprecated and replaced with -variable and -varFile
- It's now possible to provide tags for each connection profile. The quickfilter will then use the defined tags for filtering the displayed profiles.
- Connection parameters specified on the command line now have precedence over the properties defined through a Liquibase defaults file (specified through -lbDefaults)
- It's now possible to enable the use of Oracle's DBMS_METADATA for source code retrieval for different types of objects
- The tooltip shown for result tabs can now be configured (Options -> Data display)
- For the internal SQL formatter, it's now possible to configure the case in which data type names are written
- A new action to run all SQL statements up to the cursor position is available
- The error dialog that is displayed when running a script can now be configured to also include the error message or the statement that failed
- Improved display of packages in the DbTree for Oracle and Firebird
Bug fixes
- Showing rowcounts in the DbTree did not work for DB2
- "Generate Delete Script" for a selection of rows in the result did not display the generated script.
- When reloading the whole DbTree while a node was selected, would show elements (e.g. tables) twice
- CREATE TABLE statements were not formatted correctly if the name consisted of quoted and unquoted parts (e.g. unquoted schema and quoted table name)
- The error dialog when running running multiple statements was not displayed on Linux if the option "Include error message" was selected in the "SQL Execution" options
- Improved the performance when retrieving table definitions and table source for Oracle
- For Postgres, rules defined on a table where shown twice in the generated DDL script
- Retrieving additional column information in the DbExplorer failed on SQL Server if a non-standard database collation was used
- The DDL for constraints or comments where identifiers required quoting was not correct
- The formatter would not process statements correctly where a sub select using function calls in the WHERE clause was used in a JOIN condition
- When using "Remove Comments" for a connection profile, the error position inside a statement was not shown correctly for some DBMS
- For Oracle, when using "Trim CHAR data" and editing tables where the primary key column was defined as CHAR, updating the result did not work.
- Toggle comment did not toggle correctly when some lines were already commented and some not
- The messages shown when using conditional execution with WbInclude did not properly include the variable name or value
- For Oracle the tablespace of materialized views was not shown in the generated SQL (Fix contributed by Franz Mayer)
- It was not possible to work with SAVEPOINTs correctly
- Table definitions for tables with VARCHAR columns were not displayed for Oracle
- Disabling the check for read-only columns did not work for all JDBC drivers
- WbCopy now stops with an error if -targetTable is specified and -sourceTable is used to specify multiple tables
- For DB2 the names of PK constraints where not properly qualified with a schema if needed
- Sometimes using "Execute current" would not correctly identify the current statement and run the first statement from the editor
- WbImport using -insert,update did not work for multi-column primary keys when not all PK columns where part of the input file
- When a variable value contained the prefix and the suffix of the variable pattern, using such a variable would result in SQL Workbench/J locking up
- Reloading a trigger source in the DbExplorer's trigger panel did not work
- For Oracle the source of a trigger that had a trailing space in the name was not retrieved
- For Oracle the position of errors in regular (non-PL/SQL) DDL statements was not shown
- When starting SQL Workbench on a headless system, using "java -jar" using the -script parameter did not work any longer
- For SQL Server 2000, retrieving the source of a view did not work
- For SQL Server, generating "dummy DML" for tables with "bit" columns did not work
- For MySQL the option "on update" for a default value was not shown in the generated SQL source for a table
Build 118 (2015-08-16)
Enhancements
- Added support to include computed columns for MySQL 5.7 in the generated CREATE TABLE source
- The source and target connection for WbCopy, WbSchemaDiff and WbDataDiff can now be specified on the command line when starting the application. In that case it's not necessary to provide them to the respective commands
- A new action to run all SQL statements in the editor starting from the cursor position is available
- It's now possible to use OS environment variable or Java properties in the username of a connection profile.
- For Postgres, "COPY .. FROM stdin" with the data after the statement is now supported
- It's now possible to define external tools to format SQL
- For decimal values WbExport now supports the parameters -fixedDigits and -maxDigits.
- It's now possible to enable editing (and running) the generated SQL source code in the DbExplorer directly.
- For Oracle, messages from dbms_output are now always shown if a procedure is started using EXECUTE regardless of the setting of "set serveroutput"
- Added some basic support for SAP HANA.
- For Excel imports, the option -stringDates=true retrieves Dates as formatted strings and converts them using the date/timestamp format specified in the WbImport command rathr then reading a converted value from the Excel file.
- For Excel exports, the start location where the data should be written to in the excel file can now be specified using the -offset parameter
- The application to be used for displaying the logfile can now be configured.
- WbSchemaReport has a new (boolean) option -writeFullSource to write a valid CREATE VIEW statement to the XML output in case the DBMS does not store the complete SQL
- Results can now automatically be refreshed either through an annotation or through the context menu of the result tab
- The macros in a group can now be sorted alphabetically
- The quoting of the null values for text exports can now be enabled through the option -quoteNulls
- The quoting of the header for text exports can now be enabled through the option -quoteHeader
- The statement at the cursor position can now be copied directly into the clipboard (Code Tools -> Copy current statement)
- For Oracle, the partitions of a materialized view are now shown in the source code
- WbImport and WbCopy (including the DataPumper) can now be used to insert data into a view
- For tables without a primary key, unique indexes that contain nullable columns are no longer considered when generating DML statements
- For Vertica tables and views from the schema "v_internal" are now show in the DbExplorer (contributed by Tatiana Saltykova)
- It's now possible to define the terminator string for "Copy Code Snippet" through the config property "workbench.clipcreate.codeend"
- Macros and macro groups can now be excluded from the popup window
Bug fixes
- The menu to select data from referenced/referencing tables in a result set was disabled when switching to the DbExplorer and back to the SQL panel
- -syncDelete with WbCopy did not work if alternate key columns were specified using -keyColumns
- Fixed retrieval of stored procedures for DB2 on AS/400 (thanks to Francesco)
- Fixed detection of update columns for multi-table result sets when the name of the PK columns is not uniuqe in the result set
- For Firebird the source code for procedures with multiple out parameters was not generated correctly.
- For PostgreSQL, SQL statements to create the comment for functions with OUT parameters were not generated correctly.
- When running a single command in batch mode, the error status was not returned correctly to the operating system
- WbExport no longer uses the GUI defaults for decimal digits. The default is now to always export all digits, unless the new -maxDigits parameter is used
- For MySQL, when multiple tables with the same name in different databases had triggers defined, all triggers where visible for each table in the DbExplorer
- When importing multiple files using -usePgCopy and one file generated an error, the previous import was not committed
- WbConnect would prompt for a password for profiles with an empty password even if "Save password" was enabled
- No parameter prompt was shown for INOUT parameters when running procedures using WbCall
- Implemented a workaround for an Informix driver bug where index information for the wrong table was returned
- Double quotes in column values were not escaped properly when creating a JSON export
- When switching between views and tables in the DbExplorer the foreign key tabs were no longer shown for SQL Server
- Compile errors for Oracle's PL/SQL where not always shown correctly
- Parameters for SQL Workbench commands with nested single and double quotes that included SQL comments were not evaluated properly
- Fixed restoring of the window position when using multiple monitors
- Generating the SQL source for computed columns did not work for SQL Server 2000
- The SQL source for inherited tables in Postgres was not generated correctly.
- The SQL source for sequences for SQL Server was not generated correctly.
- "Create DDL script" in the DbExplorer would generate the source code for sequnces twice
- Nano (or micro) seconds from timestamp values where not displayed correctly
- When opening a file, it is now checked if the selected encoding matches the one from the file
- Each time when reloading a result that uses the @WbMacro annotation, the macro sub-menu would be added to the context menu again
- For Informix, default clauses for columns were not generated properly in the DbExplorer
- For Informix, index definitions were not always displayed correctly
- Overloaded functions and procedures where not handled correctly by WbSchemaDiff
- For Postgres the wrong DROP FUNCTION statement was generated if a function contained OUT parameter
- Scripts that contained statements including character literals with a backslash were not always parsed correctly.
- When WbImport did not find any matching columns, the error message did not include the (faulty) source file
- Fixed the display of the profile tree with large fonts
- The DataPumper did not work if source and destination had a different number of columns
- The generated WbCopy command in the DataPumper was not correct when a query was used as the source
- XLSX export did not work if the output file was specified without an extension
- Fixed some issues with restoring the window position on multi-monitor systems
- Fixed some issues where the alternate delimiter was incrrectly used when running scripts through WbInclude
- When importing multiple Excel files with WbImport using the -sourceDir argument, only the first file was imported
- The abbreviated WbInclude using @ only worked with Oracle
- The minutes for columns of type "timestamp with time zone" where not always displayed correctly in Oracle
- Oracle's autotrace did not work in console mode
- Using pgpass for Postgres connections did not work in console or batch mode
- WbProcSource would not show the code for a packaged procedure in Oracle
- Fixed some problems in the SQL formatter that would lead to invalid SQL syntax
- XSLT transformations failed when the output filename didn't include a directory
- Disabling "Filter while typing" in the DbExplorer was not possible
- -targetConnection and -referenceConnection for WbSchemaDiff and WbDataDiff were broken
Build 117 (2015-01-04)
Enhancements
- Added support for triggers and stored procedures in Teradata
- When defining a variable a list of possible values can be specified to be used when prompting for the variable value
- For Oracle the generated table source will now contain LOB storage parameters.
- It is now possible to put macros into the context menu of a result through the @WbMacro annotation
- When using the console on Linux, the window title of the terminal window will now show the name of current profile.
- For Postgres, SQL Workbench now reads the contents of .pgpass to retrieve passwords if the password is not stored in the connection profile.
- Variables can now be displayed in the order they were defined during prompting (rather than sorted alphabetically) by setting the config property workbench.sql.parameter.prompt.sort to false
- When a connection profile specified with -profile rqeuires the input of a username or the password, only the input dialog is displayed without the profile dialog
- It's now possible to define a default (global) alternate delimiter based on the DBMS.
- The DbExplorer's data tab now limits the number of rows through the generated SQL statement for DBMS that support e.g. "LIMIT" or similar operators
- When using Oracle it's now possible to mix standard delimiter and alternate delimiter in a single script.
- It's now possible to pass a SQL statement through the -command parameter using Linux "Here Documents"
- WbRowCount now has an option to exclude some columns from the result
- The amount of details retrieved from the database when editing a result set can now be reduced through a configuration property. Refer to the Chapter "Advanced configuration options" in the manual for details.
- The meta information retrieved to enable editing a result set can now optionally taken from the completion cache.
- The filter value of the DbExplorer's table list can now optionally be used to limit the number of tables retrieved.
- WbGrepData can now search in BLOB columns if an encoding is specified how the binary data should be converted to character data. The old parameter -excludeLobs has been deprecated.
- When using "Execute current" to run WbExport that has not -sourceTable argument and the next statement in the editor is a SELECT, the export is now started automatically
- When configuring a JDBC driver, the dialog to select the approriate class no longer displays non-usable (=abstract) classes
- For Vertica, the DbExplorer now displays the projections instead of indexes (thanks to Tatiana for the contribution)
- WbCopy, WbSchemaDiff and WbDataDiff can now be used without pre-defined connection profiles
- "Columns to Rows" now creates only a single result with as many columns as rows were selected
- It's now possible to select multiple types individually in the dropdown of the DbExplorer
- WbExport now has additional options to escape control characters and BLOB data such that the output file can be imported using Postgres' COPY statement
- The parser now understand Postgres' "dollar quoting" and thus removes the need to use the alternate delimiter for Postgres
- The ability to specify an alternate delimiter as "single line" has been removed. The alternate delimiter is now always assumed to be on a single line
- It's now possible to load a different macro file for each connection
- The macro popup window can now be configure to be closed using the ESC key
- For Oracle and SQL Server the DbExplorer now shows if a foreign key is enabled
- WbRunLB will now also read scripts included with the <sqlFile> tag
- It is now possible to copy the current result as DbUnit XML to the clipboard. Thanks to Brian for the contribution
- WbGenerateScript now supports the -exclude parameter
- For Firebird 3.0 the source code of procedures and packages is now displayed
- The bookmarks dialog now also includes procedure and function names if available
- The code completion now also caches synonym translation to improve performance
- When running in batch mode and not supplying the -password parameter, a prompt for the password is now displayed
- The last directory for opening files can now optionally be stored in the current workspace
- It's now possible to open multiple files through "File -> Open file". If multiple files are selected, each one is opended in a seperate editor tab
- For Postgres 9.4 the new WITH CHECK OPTION is now shown in the view's source
- An new command WbCreateProfile is available to to create a connection profile (intended for commandline mode)
- An new command WbDefineDriver is available to to create a driver definition (intended for commandline mode)
- For Oracle the list of indexes in the DbExplorer now also shows the index status
Bug fixes
- When using WbExport with -useSchema=false and -createTable=true the create table statement still contained the schema in some cases.
- The detection of the primary key of a table did not work properly if tables with the same name but different primary keys were present in other schemas
- The editor and message panel were using the font the was configured for displaying data
- For Oracle WbListIndexes did not show the expression for function based indexes
- When the option "allow empty lines as delimiter" was enabled, multiple empty lines at the beginning of the script would break the detection of the SQL statements
- The code completion did not work correctly when the cursor was located between the FROM keyword and a JOIN keyword with no tables in between
- When entering PL/SQL blocks in console mode the alternate delimiter was not detected.
- When using a SQL query as the source in the DataPumper the columns from the result were not correctly mapped to the target columns
- When using WbImport with ZIP files, the file locks on the ZIP files were not released after the import has finished
- Fixed some problems in the DbExplorer that would lock up the application
- When using set autotrace traceonly statistics the result of the statement would still be buffered in memory.
- Deleting dependent rows from a result did not work if the PK was not a numberic value
- When using -nullString together with -escapeText the null string was escaped in the output file
- When editing data in the DbExplorer the primary key of a table was not automatically detected any more.
- The alternate delimiter was not always detected correctly.
- When inlcuding Views and Grants for WbSchemaDiff the output file was not written properly for some DBMS.
- When resizing the input dialog for variables or the columns in the table, the dialog was closed
- When copying multiple tables with WbCopy and -mode=update,insert the copy would abort if one table did no have a primary key even if -continueOnError=true was used
- For Postgres and SQL Server it was no longer possible to use empty lines as a delimiter and mix that with the standard delimiter
- The global alternate delimiter (Tools -> Options -> Editor) could not be edited any more
- In console mode, the output did not honor the setting for "Decimal Digits"
- For Oracle 12c the automatically generated sequence for identity columns were not displayed
- For Oracle the position of a function or procedure inside a package was not always detected correctly when displaying the source in the DbExplorer
- For Postgres WbProcSource did not display the source code for functions with arguments
- The source code for views with case-sensitive names was not displayed
- The pre-defined JDBC driver definitions were no longer loaded (e.g. when starting SQL Workbench for the first time)
- For SQL Server and Postgres alternate delimiters with more than two characters using some special characters were no longer working
- The names for primary and foreign keys were not quoted properly in the generated SQL source (if they needed quoting)
- A WbExport based on a following SELECT would always be treated as successful even if the SELECT had an error
- For Postgres sequences linked to columns the generated source code used OWNER TO instead of the correct OWNED BY
- WbExport did not use the default setting for the decimal separator
- It was not possible to unset/clear the global alternate delimiter
- Selecting a single changesets with WbRunLB did not work properly.
- For HSQLDB 2.x triggers were no longer displayed.
- The formatter did not handle non-standard quoted identifiers for T-SQL properly
- WbSchemaReport was writing the columns for foreign keys in the wrong order
- For PostgreSQL the default value of function parameters was not shown in the generated SQL
- For Oracle, synonyms pointing to no longer existing tables where not shown in the DbExplorer
- Cancelling a running WbExport did not work during the retrieval of the table list
- When using the "JOIN completion" the ON (or USING) keyword was added even if it was already present
- For Oracle the position of an error was not shown for CREATE statements
- For Oracle "included" (non-PK) columns for index organized tables were not shown in the generated DDL statement
- Column values for FLOAT columns where not formatted correctly in an Excel export
- WbCopy would show an error message "Table not found" when the preTableStatement failed
- "Copy as SQL .." did not honor the setting of "Check for updateable columns"
- For MySQL the source code for timestamp columns with a default CURRENT_TIMESTAMP was incorrect.
- Encrypting passwords was no longer working
- It was no longer possible to use the {$clobfile=...} syntax in an SQL statement with Oracle
- When using "Execute current" macro names were not recognized
- The cache for auto-completion was not working for DBMS' that return catalog and schema information for a table
- If a profile name contained a forward slash (/) the profile was not selected as the last used profile in the connection dialog
- WbXslt was no longer working
- Look and Feel definitions with more than one library were not loaded any more
- "Copy as SQL INSERT" would not include auto-generated ("identity") columns
- For DB2 comments and grants on views where not displayed in the generated source code
- For Oracle 9.x the source code for packages was not displayed
Build 116 (2014-04-14)
Enhancements
- When exporting data as SQL INSERT using WbExport the inclusion of identity columns can now be controlled with a parameter
- The DbExplorer now supports range types for Postgres
- A new command WbRowCount is available which counts the rows of several tables (it's the commandline version of the corresponding feature in the DbExplorer)
- For Postgres messages received through LISTEN/NOTIFY are now shown in the message panel after running a statement
- Showing the execution plan for Firebird is now supported (using the same syntax as isql)
- Macros can now be saved and loaded from different files.
- Duplicate current line in the editor is now selection aware. If text is selected, the selection is duplicated, rather than the whole line
- WbGenerateScript has a new option to include the table's GRANTs.
- The generation of table grants and DROP statements in the DbExplorer can now be disabled through the options panel
- A new result annotation (@WbUseTab) is available that will re-use an existing result tab with the same name if already present
- The way the conditions for join completion are generated can now be configured.
- The Windows launcher now detects JDK only installations that are identified by the JAVA_HOME environment variable.
- A new option has been added to use the statement of the current line for "Execute current" (instead of the statement defined by the cursor position itself)
- WbExport now supports -targetSheetName to specify the target sheet by name instead of an index value. The options for autoFilter, autoColWidth and fixedHeader now default to false if a target sheet is specicfied.
- Support for bookmarks defined through the annotation @WbTag was added.
- WbImport and WbCopy now support an option to synchronize sequences with the imported values for DBMS that support sequences tied to a column (Postgres, DB2, H2, HSQLDB)
- WbFeedback now supports the options "traceon" and "traceoff". With "traceon" each statement that is executed is printed.
- The trigger panel in the DbExplorer now shows DDL triggers for SQL Server
- A new option has been added to use the name of the first table of a query as the name of the result tab
- When inserting new rows into a result set, the generated values for "auto increment" columns (serial, identity, ...) are now retrieved.
- Computed columns (of table) are now treated better when editing data and generating DML for the changes
- WbCopy and WbImport now run the post table statements even when an error occurs during the import of the data. This new behaviour can be disabled using the new parameter runTableStatementOnError
- In the DbExplorer the column definition now includes a flag to show if a column is a computed column or not
- For SQL Server 2000 the definition of computed columns are now shown in the generated SQL
- The cache for the auto-completion can now be saved locally to speed up the initial auto-completion display.
- A new option for WbInclude was added to print all SQL statements before running them
- The UI of the Save As dialogue was re-designed to make the dialogue more compact
- Changing the font size with the mouse wheel can now be disabled
- WbInclude can now do a simple text replacement when running a script.
- For Postgres, Oracle and DB2 WbSchemaReport and WbSchemaDiff now write more details when dealing with TYPEs
- WbGrepData now also supports -compareType=isNull to search for null values
- Reworked the driver definition dialog to make defining drivers that need multiple jar files easier.
- The list of profiles in the connection dialog can now be filtered
- For Oracle and Postgres the displayed error now inlcude the actual error position and the part of the statement that corresponds to that position. If "highlight error" is enabled and the actual error line could be determined, only that line will now be highlighted
- Macros are now also supported in console mode
- In console mode, the history of commands is now saved across restarts
- A new command WbHistory is available to show the history of executed commands (primarily intended for console mode)
- For Postgres columns with custom types or arrays can now be edited correctly inside a result
- The Excel export now supports a new parameter -targetSheet. If that is specified an existing file is loaded and all data is written to the indicated worksheet overwriting any previous content
- A single result can now be detached into a separate window
- Displaying a tooltip for the corresponding insert value/column now also works for the INSERT part of a MERGE statement
- The SQL formatter now handles MERGE statements
- The status bar in the DbExplorer now shows the total number of objects if the content was filtered
- WbVarDef now supports assigning multiple variables when using a SQL statement to supply the variable values.
- ENABLEOUT and DISABLEOUT now support an optionaL parameter "quiet" to supress the feedback message.
- WbFeedback now supports an optional parameter "quiet" to surpress the message
- WbConfirm can now be called supplying the message, the text for the "yes" choice and the text for the "no" choice.
- A new command WbEcho is available to show a message
- The parameter -vardef can now be used multiple times on the commandline.
- Console specific commands (e.g. WbDisplay) can now also be executed in GUI or batch mode and will silently be ignored.
- Other occurances of the current selection can now be highlighted
- The editor can now automatically reload files that were externally modified.
- For Informix the additional qualifiers for DATETIME and INTERVAL data types are now displayed
- The quick filter in the DbExplorer now supports adding multiple values separated by a comma (if RegEx matching is not enabled)
- WbGenerateDelete now supports -excludeTables to not generate DELETE statements for those tables
- "Append results" can be set as the default now
- The behaviour when a file has been modified by a different application can now be configured
- It is now possible to display a drop down with the recently selected tables in the DbExplorer.
- WbGenerateScript now supports -includeDrop to generate a DROP statement before the object (similar to the source in the DbExplorer
Bug fixes
- Exporting the result of a Workbench command (e.g. WbList, WbListProcedures etc) using WbExport did not work properly.
- When adding a new SQL tab while a statement was running in a tab that had a file loaded, the "busy" icon was removed from that tab
- Fixed some problems with exporting to Excel spreadsheets regarding the use of cell styles
- For Informix (11.x) overloaded procedures and functions are now handled correctly in the DbExplorer
- For Oracle the initial state of a deferred foreign key constraint was displayed incorrectly
- Importing text files with multiline enabled did not work, if the file contained escaped quotes
- For Oracle, named not null constraints are now displayed correctly in the generated SQL source of a table.
- The keyboard shortcuts Ctrl-1 through Ctrl-9 could not be remapped to something different.
- Auto-completion did not work properly if tables where joined with the USING clause rather than the ON clause.
- In the DataPumper it was not possible to create the target table in a schema other than the default schema.
- WbGenerate delete could sometimes fail with the error "Comparison method violates its general contract"
- It was not possible to export multiple tables using wildcards for the -sourceTable parameter into a single Excel Workbook using -append=true
- When compiling invalid Oracle objects in the DbExplorer no error message was shown.
- The generated source code for temporary tables in Oracle was not correct.
- If the trigger panel was disabled, a DbExplorer tab could not be closed.
- The completion option "As is" for the case of the object names didn't work any longer
- For Postgres check constraints were retrieved incorrectly if the same table existed in different schemas
- When opening a connection that did not have a worskpace assigned the GUI would not initialize.
- When connection profiles where filtered and modified, the filtered profiles would be lost when saving the changes
- Oracle: columns defined as NOT NULL through a check constraint (rather than using NOT NULL) where not shown correctly in the table's source
- Prompting to reload a changed file in the editor didn't work properly.
- XLS or XLSX exports would fail when using -append=true together with -infoSheet=true
- Fixed some errors in the generated SQL statements in the DbExplorer for Sybase
- Importing data from the clipboard into the current result set did not work any longer.
- When using the DbExplorer to drop a Postgres custom aggregate function, the wrong DDL statement was generated.
- When importing all sheets from a spreadsheet file (OpenOffice Calc, Excel) missing tables would not be ignored.
- The SQL Formatter would swallow the character immediately following an IN condition with literals inside a JOIN condition
- For Informix sequences were no longer displayed.
- When calculating table dependencies (WbGenerateDelete or WbImport using -checkDependencies) some cyclic references where not always detected.
- The SQL formatter would incorrectly format "nvarchar" literals e.g. N'foobar' would be re-formatted to N 'foobar' (which leads to a syntax error)
- Exporting large results that contained LOB columns could lead to an out of memory error
- When using "Create DDL Script" in the DbExplorer, not all objects were included
- For Oracle the source code of tables with multiple nested tables was not shown correctly.
- When displaying a BLOB value as hex, the "ASCII" display of the values was only showing 15 bytes not all 16.
- When using the "Apply sort order as ORDER BY" option for the DbExplorer sometimes an invalid SQL statement was generated.
- When using "Save Data as" to save the data as an Excel file, creation of the auto-filter and optimizing of the column widths could not be enabled.
- Implemented a workaround for a bug in the MonetDB driver that caused wrong column information to be displayed.
Build 115 (2013-09-01)
Enhancements
- Implemented a workaround for an Oracle JDBC driver bug to correctly display comments for materialized views.
- For SQL Server the source for filtered indexes is now shown correctly.
- WbDataDiff now supports the -excludeIgnored parameter that will exclude the ignored columns from any UPDATE or INSERT statement.
- The connection profile can now be configured to always prompt for username and password.
- When selecting a FK value while editing the result set, foreign keys with multiple columns are now supported.
- The connection profile now allows to specify a custom icon for the main window now (thanks to Charles)
- Multiple tables can now be exported into a Excel file (using -sourceTable=* and -file=foobar.xlsx)
- When using WbImport with a spreadsheet (OpenOffice, Excel), all sheets can now be imported with a single statement
- For Postgres 9.3 the new event triggers are now shown in the "Triggers" tab of the DbExplorer.
- For Informix, the extent definition is now also shown in the generated table source.
- Added support for the new table definition features (identity columns, default on null) in Oracle 12c
- WbImport for XLS and XLSX now supports the "append" option to add a new worksheet to an existing workbook.
- A new command (WbGenerateDelete) to generate a delete statement with respect to foreign keys has been added. This the same as the "Generate delete script" menu item.
- Data can now be exported (saved, copied) as SQL DELETE statements as well.
- For Informix the lock mode of a table is now displayed in the table's source
- Implemented a workaround for a bug in the MonetDB driver in order to display stored procedures properly
- When editing or displaying long strings (that exceed the multi-line threshold) word wrapping can now be enabled
- When printing a result set the SQL shown above the result is now properly wrapped if too long for a single line. Displaying the SQL can also be disabled. If enabled, the SQL will only be shown on the first page
- Added support for PostgreSQL 9.3 MATERIALIZED VIEWs
- Column headings can now be displayed in bold face (Tools -> Options -> Data display)
- The editor now supports "Jump to line#"
- When showing the query on which a result is based through the context menu of the result tab, the metadata of the result set is now also displayed.
- WbInclude and WbSysExec now support conditional execution based on variables through -ifDefined, -ifNotDefined, -ifEquals, -ifNotEquals, -ifEmpty and -ifNotEmpty
- For SQL Server "included" columns are now displayed in the generated SQL code for a CREATE INDEX statement.
- A new option -trimCharData was added to WbExport and WbCopy which allows overwriting the setting in the connection profile.
- WbVarDef now supports an option -removeUndefined which replaces undefined variables in the assigned value with an empty string
- A new option "-removeDefaults" has been added to WbCopy to be used together with the createTable=true argument. If enabled, any column defaults from the source table are ignored.
- A new option to change the alignment of numbers in the result display has been added
- A new option has been added to use an ORDER BY reflecting the current sort order when reloading table data in the DbExplorer
- The new -ignoreIdentityColumns as well as the pre and post-table statements can now be specified in the DataPumper
- A new option for WbSchemaReport -objectTypeNames is available to select objects by type and name (possibly with wildcards)
- When editing a date or timestamp column, the value is now displayed in the same format that is defined in the options dialog for "Data formatting"
- A new parameter (-ignoreIdentityColumns) to ignore identity (and autoincrement columns) was added to WbImport
- A new menu item to close all empty result tabs has been added to the context menu of the result tabs
- For H2 and HSQLDB the generated source of a table now contains the MEMORY/CACHED option
- For SQL Server the generated source of primary keys and indexes now contains the clustered/nonclustered attribute
- WbCopy now supports using DROP .. CASCADE (if the DBMS supports is) by specifying -dropTarget=cascade (instead of -dropTarget=true)
Bug fixes
- When replacing text inside the selection, the selection wasn't properly adjusted to reflect the new length of the text after the replacement
- Compiliation errors for packages/procedures in Oracle where not shown if the procedure was prefixed with a schema name
- When a borken workspace was loaded, the main windows UI was corrupted
- WbSchemaDiff would fail without an error message if object types without attributes (e.g. in Oracle) were included.
- WbSchemaDiff would incorrectly compare indexes if the same table existed in different schemas
- Assigning a shortcut with Ctrl to the "File -> Disconnect" result in trying to "brute-force" a disconnect, rather than a clean disconnect
- Several bugfixes for the XLXS import
- uuid columns in Postgres were not handled correctly by WbDataDiff
- The XSLT to transform a WbSchemDiff or WbSchemaReport output for Postgres or Oracle did not create the DEFERRABLE option for foreign keys
- Importing multiple worksheets using -mode=update,insert did not work for the Excel import.
- -ignoreOwner was not working for WbImport when importing Excel Spreadsheets
- In the "type" dropdown in the DbExplorer's table list, entries with "VIEW" were not shown for some DBMS
- Fixed some problems when using quoted identifiers for code completion
- For Oracle, the source of index organized tables wasn't displayed correctly
- Selecting a foreign key value when editing a result set did not work properly.
- The connection info in the main window was not cleared after disconnecting the window
- The new word-wrap feature would silently fail in a select if a value from the database was an empty string
- Fixed a bug in the DbExplorer when using Informix
- When exporting XLS or XLSX, the width of columns was sometimes set to zero.
- When importing XLS or XLSX files, formula values could not be imported
- The definition of Oracle NUMBER columns was not displayed correctly
- The option -autoFilter=true was not working for XLS or XLSX exports
- For Informix synonyms and sequences from other schemas were not displayed correctly in the DbExplorer
- When configuring shortcuts, the alternate shortcuts for Cut, Copy, and Paste (using e.g. Shift-Insert) were no longer working
- When invoking code-completion for a specific schema, the schema name appended twice if the case written in the editor did not match the actual case as stored by the DBMS
- Configured SQL statements to retrieve view, trigger or procedure source would not work if they had sub-selects with a WHERE condition
- The columns of an index where no longer displayed in the index list of the DbExplorer
- The office libraries (for exporting Excel files) were not bundled correctly in the Mac package
- When invoking code completion for an already schema-qualified identifier, the schema would be pasted into the editor again
- Code completion for a specific schema did not work if quoted identifiers were used (e.g. "foobar".)
- When importing text files where columns at the end are missing, the value from the previous row was used for the missing column
- For Oracle, the DbExplorer did not display the table source of tables without a primary key
- For Oracle, the DbExplorer sometimes failed to load the table list with the error "Comparison method violates its general contract"
- When exporting to ODS, numeric columns with a NULL value would cause the export to fail
- For Oracle, displaying the source of a table with a disabled primary key generated an error
- For SQL Server, WbCall now displays the (scalar) return value of a stored procedures when using the jTDS driver
- For Oracle, the value for a TIMESTAMP WITH TIME ZONE column is now displayed correctly
- WbImport and WbCopy did not work with PostgreSQL XML columns.
- For Postgres additional indexes defined on the PK columns of a table where not included in the generated table source
- WbImport did not work properly with XML columns.
- The DbExplorer was not working properly with SQL Server 2000 (and older)
- Using -ignoreColumns together with -alternateKey and -excludeRealPK with WbDataDiff did not work
- Prompting for variables of prepared statements did not work any longer
- "Save Data As" was not working for results not obtained from the database (e.g. table list, table columns, indexes, ...)
- For SQL Server, when changing the datatype of a column in the DbExplorer, the generated DDL did not preserve NOT NULL constraints
- WbCopy refused to run if the current connection was set to read-only instead of checking the target connection.
- Not all changes in the DataPumper copy settings were reflected in the generated SQL script.
- The parameter -decimal was not working for WbExport
- When dropping an index from within the DbExplorer's index list, the wrong DROP statement was generated for SQL Server
- Implemented a workaround for non-JDBC compliant drivers for retrieving the columns of a table
- For WbSchemaReport no sequences were written when using the -tables parameter
- When using WbDataDiff without any schema or table parameters, nothing was compared in Oracle
- When using "Generate Schema Report" from the DbExplorer not all types were included in the output (e.g. Postgres domains)
- Using WbExport to export BLOBs (binary, varbinary) from SQL Server did not work any longer
- When using the -tables parameter for WbSchemaReport views would not be included in the output
- For SQL Server, table comments (defined through extended properties) were not included in the WbSchemaReport output
- Source for views and procedures was not shown for SQL Server for objects not in the "default" schema.
- The ObjectSearcher would not close the current connection when connecting a second time.
- The highlighting of matching values for the result of a WbGrepData was not working any longer
- In the connection profile's schema and catalog filter, the "only show these objects" options where not saved.
Build 114 (2013-01-21)
Enhancements
- It's now possible to (permanently) display the SQL that generated a result right above the result's data
- WbExport can now export JSON as well.
- The licenses for SQL Workbench/J has been changed to an Apache 2.0 license
- The output of WbGenerateDrop can now be controlled in more detail
- WbImport can now import Excel (XLS and XLSX) and Open Office Calc (ODS) files
- From within the DbExplorer's table list, the rows for the selected tables can now be counted.
- WbSchemaDiff can now handle additional DBMS specific objects such as TYPEs. The parameter -additionalTypes selects the types to be compared.
- When filtering for a single column in the filter dialog, a value from the underlying data can now be selected.
- The number of lines to scroll in the editor with the mouse wheel can now be configured.
- WbSchemaDiff and WbSchemaReport have new option -includeExtendedOptions to include extended table attributes (like tablespace or Oracle partitions)
- A new option "Append result" is available for macros.
- Values for FK columns can now be selected from the referenced table through a search dialog. This is available when editing a result set or for the column values of UPDATE and INSERT statements.
- The FK information used for the "join completion feature" is now held in the completion cache to make subsequent uses faster.
- WbInclude now supports wildcards for the -file argument (e.g. -file=/foo/bar/*.sql will run all scripts from the specified directory)
- Added support for NuoDB (http://www.nuodb.com/)
- The context menu of a SQL Tab now has options to copy the filename to the clipboard
- Improved the handling of relative filenames for WbSysExec
- If a (main) menu contains more items than can fit on the screen, the menu can now be scrolled
- When choosing a font, the size can now be entered manually to allow any size
- The source code displayed in the table list of the DbExplorer can now be reformatted.
- In the DbExplorer's table list, the schema and catalog can now be changed if the DBMS supports it
- The string literal for NULL values can now be defined when displaying data in a result set
- The string literal for NULL values can now also be defined when using "Save Data As"
- Code completion is now also supported for common table expressions
- WbExport and WbImport now support a parameter to define the string literal to be used for NULL values (e.g. -nullString='[NULL]')
Bug fixes
- For SQL Server unique indexes and constraints where not show correctly in the generated table source
- WbCopy did not find the target tables if the two DBMS were using different default casing for table names (foo vs. FOO)
- When creating tables on the fly using WbCopy, character columns with more than 8000 characters (e.g. varchar in PostgreSQL) are now automatically mapped to varchar(max).
- For SQL Server Auto-completion removed the schema from the table names even if the schema was required.
- When exporting to Excel or OpenOffice, using an extension that identifies a template would result in invalid files.
- In the connection profile's schema and catalog filter, the "only show these objects" options where not restored correctly when editing the filter.
- For PostgreSQL columns that are defined as arrays weren't shown correctly in the DbExplorer.
- When cancelling the confirmation to discard changes in an editor file while closing a tab by using the ESC key, the tab would still be closed.
- When exporting data into XML, the name of the exported table was not written to the XML file
- When using WbCopy with a single table the -preTableStatement and -postTableStatements weren't executed
- When searching in the result set, "Highlight All" did no longer work.
- Using -types=VIEW did not work for WbExport
- Showing the INSERT "hint" for values and columns was not working for INSERT statements with more than one row.
- For Oracle, errors resulting from e.g. a wrong CREATE PROCEDURE were no longer displayed automatically
- For Oracle the display in the DbExplorer of the index and other table specific panels was not always correct when switching between VIEWs and TABLEs
- WbDataDiff generated DELETE statement without a schema qualification for the tables even when necessary.
- When running in batch mode using the -command parameter, SQL Workbench statements (WbExport, WbXslt, ...) that would reference external files did not work.
- Grants for Views would be put into the view's source code in the output of WbSchemaReport rather than in their own tags.
- The source code for tables with nested tables was not generated properly for Oracle
- When defining a result set filter, it wasn't possible to switch the comparator from "Contains" directly to "Contains not"
- Editing values in result sets based on public synonyms (Oracle) was no longer working
- The SQL formatter did not format HAVING clauses with sub-selects properly
- Table comments were not shown completely for SQL Server.
- For MySQL if an index only included part of a column, the index definition was now shown correctly.
- The detection of columns for auto-completion in INSERT statements did not always work properly if the insert was based on a SELECT.
- The trees for the connection profiles and macros now display correctly with larger fonts
- For SQL Server the data types varchar(max), nvarchar(max) and varbinary(max) where not handled correctly.
- Sometimes concurrently running statements (in two different tabs) could influence each other
- The new NULL display string and a background color for NULL values could not be combined
- Code completion for SQL Server did not work without a schema.
- Exporting of the result data (e.g. copy to clipboard) did not deal properly with duplicate column names
- Derived tables in JOIN expressions where not formatted correctly (according to the sub-select rules).
- The "USE" command did not work any longer for SQL Server
- The DbExplorer's table list did not work for SQL Server 2012 using the Microsoft JDBC Driver 4.0 (and possibly previous versions as well)
Build 113 (2012-08-26)
Enhancements
- A new option for the SQL Formatter is available to insert column names in the VALUES part of an INSERT statement
- WbSchemaDiff now deals properly with Oracle packages
- The SELECT statement used by the data display in the DbExplorer can now be configured (e.g. to allow for additional options like "FOR READ ONLY")
- A new command WbSysOpen is available to open a file with the default application of the operating system.
- WbCopy now supports -sourceSchema and -targetSchema parameters to be able to copy to and from schemas that are not the "default" schema
- WbImport can now use PostgreSQL's COPY mode (this can be turned on using -usePgCopy)
- WbDataDiff now only shows a warning if a table without a primary key is found instead of aborting.
- The editor now supports "Delete current line" and "Duplicate current line"
- Added support for SQL Server 2012 sequences
- Added support to display synonyms for Informix
- A new option to copy data as "MERGE" statements has been added. This is also available for WbExport
- The SQL source for external tables is now shown correctly for Oracle
- For Cubrid, support for views, sequences and triggers has been added to the DbExplorer
- For Vertica, support for views, sequences and functions has been added to the DbExplorer
- For PostgreSQL, the generated table source now shows child tables (as a comment)
- If a connection profile is set to read-only, this is now shown with an icon in the connection info of the main window
- In the DbExplorer "Put SELECT into" can now also put the statement into the clipboard.
- A new option for WbDataDiff to write a single SQL script is available (-singleFile=true/false)
- Oracle nested tables are now displayed correctly in a result set
- A new command WbGenerateScript is available to generate the SQL scripts of tables and other objects (this is the same as the "Generate Script" option in the DbExplorer)
- Macros can now be defined to be expanded while typing their name. When such a macro is selected from the menu it is not run, but the text is inserted into the editor
- A new option for the connection profile has been added to prevent running UPDATE or DELETE statements without a WHERE clause.
- When using JOIN completion and the "previous" table in the join list does not have a FK relation to the current, a popup is now shown with all possible tables from the select statement.
- A new option to automatically insert closing brackets in the SQL Editor is available. It is enabled by adding the bracket pairs to be completed (e.g. ()[])
Bug fixes
- For WbDataDiff the option -alternateKeys did not work with columns that needed quoting.
- Selecting specific tables for WbSchemaReport (using -tables=...) did not work any longer
- "SET ROLE" or "SET CONSTRAINTS" could not be run for Oracle
- When using fixed width text files, ignoring columns by using -fileColumns and -importColumns together did not work
- Using WbImport with XML files and the -sourceDir argument did not work any longer
- -excludeTables (for WbDataDiff and WbSchemaDiff) was not working properly when the tables were specified using -referenceTables and -targetTables at the same time
- For MySQL tables from a database other than the current one weren't handled properly.
- When re-ordering columns in the DbExplorer's table (or procedure) list, displaying the details of the objects did not longer work
- When using alternate primary key columns for WbDataDiff the generated DELETE statements did not use the alternate PK
- Tables that contained a dot in there name ("FOO.BAR") were not handled properly
- For DB2 primary keys are not correctly displayed for tables that were created through DDS
- Retrieving synonym definition did not work in SQL Server if the synonym contained an underscore. This also prevented several commands from finding tables (or other objects) that contained an underscore
- Displaying object list in the DbExplorer did not work for Vertica if no schema was selected
- Displaying object list in the DbExplorer did not work for Informix if the schema name contained an underscore
- The SQL for the primary key in Informix was not created correctly
- Sequences for Informix where no longer displayed
- For Oracle, DB2 and PostgreSQL auto-completion for tables in a schema did not work if the schema wasn't typed in the correct (upper/lower)case of the databse.
- Using a JDBC driver that did not support savepoints as the source for the DataPumper or WbCopy copying failed
- For Oracle, deferred unique constraints where not generated correctly in the SQL source of a table.
- For SQL Server it was no longer possible to display databases with an underscore in their name in the DbExplorer
- For PostgreSQL the table source was not displayed if the table contained a unique index together with non-unique indexes
- Auto completion was not working with Postgres 8.3 (and before)
- Setting a result's name using @wbresult in the comment only worked in the first line comment
- When using scaled fonts in Windows, the editor and data font would be incorrectly re-scaled even if they weren't set to "Default"
- Comments used in the output files of WbDataDiff are now compatible with MySQL
- The option "Include Identity" columns now also checks for auto-increment columns (e.g. in MySQL)
- When selecting only some columns in the result and using "Copy selected" the wrong columns were copied
- Displaying the table source SQL for MySQL was broken
- Using "Make lowercase" or "Make uppercase" in the editor would lock up the application if a rectangular area was selected
- WbDataDiff now shows a proper warning if a table that should be compared could not be found
- Using capturing groups in the replacement text when doing search & replace in the editor did not work
- WbCopy's option -dropTable=true was no longer working
- When expanding macros the cursor would not be located at the correct position if the expanded text did not start at the first character of the line
- If MySQL was not running in ANSI mode, standard double quotes were used for quoting table or column names which needed quoting.
- EXECUTE wasn't supported for auto-completion of stored procedures (only EXEC)
- When running a stored procedure in Oracle message from dbms_output would not be shown if the procedure terminated with an error.
- On some (slow) computers the application would hang when trying to display the initial connection selection dialog
Build 112 (2012-03-25)
Enhancements
- PostgreSQL's "infinity" values for DATE and TIMESTAMP columns are now displayed and parsed correctly
- The busy and cancelling indicator for a SQL panel can now be selected in the options panel
- The editor now supports "Find previous"
- A new option to blend the selection color with the column highlight color is available
- A new option to copy all column names of a result is available (thanks Andreas)
- For Oracle the SQL for temporary tables is now generated correctly.
- The notification about a finished (long running) script can now optionally be done using the system tray.
- Enhanced the behaviour of the editor when when typing while a rectangular selection is active.
- Implemented a workaround for Firebird JDBC driver which does not return function based indexes (and thus they were not shown in the DbExplorer)
- Code completion now honors the setting of the "search_path" in PostgreSQL
- The schema and catalog filters in a connection profile can not be defined as "inclusion" filters that define the list of names to be displayed (rather than a list of names to be excluded)
- For Oracle and Postgres a check for uncommitted changes can be enabled in the connection profile (for Oracle this requires the SELECT privileges on V$TRANSACTION)
- For Oracle, the "autotrace" mode from SQL*Plus is now supported. It is enabled with "SET AUTOTRACE" the same as in SQL*Plus (and requires the PLUSTRACE role like SQL*Plus)
- A new option to generate a script to drop a table and all incoming (referencing) foreign keys is available in the DbExplorer. This functionality is also available through the WbGenerateDrop command
- If enabled, the formatting of internally generated SQL statements is now done by the SQL formatter (and thus uses the same settings as the formatter)
- The dependency tree in the DbExplorer can now be limited to the direct children only.
- A new option for WbDataDiff is available to define alternate key columns for each table. See the manual for details.
- "Help -> Show DBMS Manual" now displays the online manual corresponding to the version of the DBMS
- For Oracle a subset of the SQL*Plus SHOW command is now supported
- A new option is available to automatically save connection profiles if the connect dialog is closed with OK.
- Enhanced entering variables in the variable dialog. The ENTER key automatically advances to the next variable and closes the dialog after the last one.
- When using WbVarDef with -contentFile, variables in the source file are now replaced. This can be disabled using the parameter -replaceVars=false
- The save button to update the database can now be set to be always enabled by setting the property workbench.gui.savebutton.always.enabled=true in workbench.settings
- A new option has been added to highlight columns that have been changed.
- The contents for a variable can now be read from an external file (using WbVarDef -variable=foo -contentFile=bar.txt)
- A new option to enable a connection to Oracle using the role SYSDBA has been added to the connection profile. This removes the need to specify an extended property.
- The dependency tree in the DbExplorer can now be retrieved independently from the list of foreign keys. Additionally the automatic retrieval of the tree can now be disabled in the options dialog.
- A new command "WbSysExec" has been added to run external programs.
- For H2 the (SQL) source for linked tables is now correctly shown in the DbExplorer.
- A new option for WbImport is available to control the behaviour with empty files
- For Postgres the generated CREATE TABLE statements now includes storage and tablespace information
Bug fixes
- In the editor, regular expressions that anchored at the start or end of a line did not work.
- Fixed several problems for DB2 on iSeries
- Autocompletion for tables and columns was not working with MySQL
- Results of SELECT statements could no longer be updated for MySQL
- The DbExplorer did not work for PostgreSQL versions before 8.3
- On MacOS it was no longer possible to close the application using the "Command-Q" shortcut.
- In the DbExplorer changes to the data display colors were only applied when re-opening the DbExplorer
- For H2 unnamed check constraint where not shown in the generated SQL source
- Date and timestamp columns where not properly formatted when exported to OpenOffice
- If a column alias was used, the alias name was not used when exporting the result (WbExport or using Save Data As)
- "Delete word" would delete too much if the caret was located at a whitespace
- Fixed a problem with detecting tables for DB2 iSeries and the library search path.
- No columns were shown in the DbExplorer for Vertica when the table or view name contained an underscore.
- For DB2, the source code for views created using CREATE OR REPLACE was not shown correctly.
- Adding a new column in the DbExplorer was not working for DBMS that do not support renaming of columns.
- A CASE statement with a column alias not using the AS keyword word was not always formatted correctly.
- When specifying a non-existing table using -sourceTable for WbExport no proper error message was shown.
- Fixed a problem with displaying the menus if the editor tabs ran over more than one line
- Implemented a workaround for the Vertica JDBC driver to allow running DML statements.
- WbSchemaDiff did not work when the table names needed quoting because of special characters or mixed case names
- The ACTION part for foreign key definitions was displayed incorrectly in the generated SQL source and the "References Tab" of DbExplorer
- Running more than one DataPumper or WbCopy command in parallel did not work.
- Displaying the source code for functions did not always work properly in PostgreSQL
- Copy as SQL UPDATE did not work properly
- If more than one statement was selected, reformatting the SQL would remove the delimiter
- Implemented a workaround for a bug in old MySQL drivers that would cause an error when processing the result of a SELECT statement
Build 111 (2011-09-18)
Enhancements
- A new commandline argument is available (-connectionName) to define the connection name to be displayed in the window title if the application is started without a profile (but with a full connection definition)
- The internal cache used for auto-completion is now updated when tables or table definitions are retrieved in the DbExplorer.
- Displaying the SQL of a view for SolidDB is now supported (contributed by Jason).
- Retrieving the dependency tree for foreign keys in the DbExplorer is now cancelled when switching to a different tab.
- External tools now have a seperate property for commandline arguments
- The filter in the DbExplorer's table list can now be set to "Filter as you type"
- Foreign keys referencing unique constraints are now displayed for Oracle (this is a workaround for a bug in the Oracle JDBC Driver)
- WbImport now accepts multi-character delimiters (e.g. \t\t)
- The suffix for escaping variables can now be defined as "empty", so that e.g. &val can be used as variable name
- For PostgreSQL 9.1 and Oracle, the trigger panel in the DbExplorer is now also shown for Views
- For MySQL and SQL Server column level collation and character set definitions are now shown
- Support for new features in PostgreSQL 9.1 has been added. The SQL source in the DbExplorer will now show FOREIGN and UNLOGGED tables correctly as well as column level collations
- In the DbExplorer's table list, a new option has been added to generate an "empty" UPDATE statement (in addition to the INSERT and SELECT statements)
- When using -mode=insert,update for WbCopy or WbImport only real primary key violations are now ignored (previously all errors during insert were ignored)
- The list of triggers in the DbExplorer now contains an additional column to show the status of the trigger for Oracle and Postgres
- The order of the columns in the DbExplorer's table list is now saved in the workspace
- WbDeleteProfile and WbSaveProfile are now also supported in batch mode.
- WbSaveProfile now supports a parameter whether the password should be stored or not (in that case the new -name parameter must be used to specify the profile's name)
- For simple INSERT statements a tooltip can now be show (Ctrl-#) that displays the corresponding column name or column value.
- The matching bracket highlighting can now be configured
- When converting boolean values to numeric values during WbImport, the numeric values to be used can now be specified using the new parameters -numericFalse and -numericTrue
- For Oracle, WbSchemaReport and WbSchemaDiff now includes the information about partitioned tables and indexes
- The generated table source in the DbExplorer now includes the new exclusion constraints from PostgreSQL 9.0
Bug fixes
- For Oracle unique constraints that were backed by a non-unique index were not displayed.
- The DataPumper did not commit the SQL statements when batch mode was used together with the "commit every" option.
- The dependency display in the DbExplorer did not work with unique constraints in Oracle
- The source for XMLTYPE columns was generated incorrectly for Oracle
- The correct source code for unique constraints is now shown in the DbExplorer for Oracle, PostgreSQL, DB2 and SQL Server 2005+
- Table names with non-standard upper/lowercase usage where not quoted in the code completion.
- Code completion used the wrong value to insert into the editor when the current word limited the list to a specific schema.
- Empty strings where not treated as NULL values for boolean or bit columns when importing text files using WbImport
- When compiling several procedures from within the DbExplorer's procedure list, Oracle packages are now only compiled once (contributed by Andreas)
- WbCall did not handle overloaded package procedures in Oracle
- The SQL Formatter did not properly format function calls that do not have parameters in e.g the VALUES list
- Copy Selected was not respecting re-ordered columns in the result set
- WbStoreProfile did not correctly register the used driver in WbDrivers.xml
- WbDataDiff did not always write correct XML files for update statements
- For MySQL retrieving the table definition of tables in a database where the database name contained underscores did not work
- When selecting * in the schema dropdown of the DbExplorer no triggers where displayed in the trigger panel
- WbSchemaDiff did not compare indexes and check constraints correctly
- Code completion was not always working properly if the table name ended with an underscore
- WbSchemaDiff did not process materialized views correctly.
- When choosing not to save a modified file when closing the application, the file was saved nevertheless.
- When recompiling an Oracle function or procedure using ALTER ... COMPILE, compilation warnings where not shown.
- Fixed a bug where that caused the code completion to be extremely slow.
- In the DbExplorer the columns for tables that had "similar" names (according to a LIKE expression with underscores) were not displayed correctly.
- Fixed a problem with schema display in the auto-completion for SQL Server
- Fixed a problem with schema detection in the DbExplorer when the JDBC driver did not support all metadata calls (e.g. DB2 for host systems)
- In Oracle, compilation errors for a TYPE BODY were not displayed
- In Oracle, the source for a primary key index that had a different name than the primary key was not shown in the DbExplorer
- Retrieving of column comments for queries did not work when the table had an alias
Build 110 (2011-02-13)
Enhancements
- The (self-written) Windows launcher has been dropped and replaced with executables from Winrun4J, including suppport for 64bit executables (thanks to Markus for testing this).
- EXPLAIN is now supported for auto-completion (PostgreSQL, Oracle, MySQL)
- The DbExplorer will now show the status of Oracle stored procedures.
- The DbExplorer now includes information about partitioned tables and indexes for Oracle in the generated source.
- The possibility to influence the generated INSERT statement for WbImport is now available as a commandline parameter (previously this was only possible through a property in workbench.settings).
- Two new options for the SQL Formatter are available that control the placement of the comma when line breaks are inserted. Thanks to Andreas for this patch.
- The option "Allow empty line as statement delimiter" has been moved into the settings dialog and is now also being used when detecting the current statement in the editor.
- The font size of the editor can now be changed dynamically using Ctrl-Numpad Plus/Ctrl-Numpad Minus or via the scroll wheel of the mouse (holding down the Ctrl Key). The font size of a result table can be changed using the scroll wheel or through the context menu in the table header.
- It is now (optionally) possible to modify the text in the editor while a statement is running. Statement and error highlighting will not be available if the editor contents was modified during execution.
- When the option "Show Max. Rows warning" is enabled, the warning is now shown using an icon in the tab header (instead of changing the color).
- The join condition inside a JOIN part of a SELECT statement can now be generated automatically (if the tables involved are using foreign keys) using SQL -> JOIN completion
- Primary key columns are now shown in bold face in the auto-completion popup window. If comments are defined for columns, tables or view, these will be shown as a tooltip for the entry in the popup
- A new parameter -skipTargetCheck is available for WbCopy to disable checking of the target table. This is useful if the target table is not visible by the JDBC driver (e.g. temporary tables for Informix)
- A new parameter (-tableType) is available for WbCopy to control what kind of table is created when using -createTarget. The parameter value selects a SQL "template" that is defined in workbench.settings
- When using WbExport and -quoteAlways=true, null values are no longer escaped. The parameter can now be use with WbImport to distinguis between null values and empty strings.
- The escaping of embedded quotes can now also be selected when using "Save Data as" or "Import file".
- When connected to an Excel Spreadsheet, [] are now also recognized as quote characters (to allow a semicolon in a "table" name).
- The JDBC driver templates can now be loaded from an external a file named "DriverTemplates.xml" that has to be stored in the directory where the jar file is located.
- When starting the console mode without specifying a password or when using a profile without a password, the application now prompts to enter a password
- A new option "Connection Timeout" has been added to the connectioin profiles.
- A new option to log all executed SQL statements to the logfile has been added (Tools -> Options -> General -> Log all SQL statements).
- The DataPumper now remembers the settings for importing text or XML files
- A new SQL formatter option has been added, to insert a space after a comma when processing IN (...) lists.
- The "Delete data" dialog in the DbExplorer now correctly commits for DBMS where TRUNCATE is transaction safe. The CASCADE option for PostgreSQL is also supported.
Bug fixes
- Changing the font size in the editor would corrupt the display of the caret
- When exporting data, two tabs could not be defined as a separator (only a single tab)
- Oracle Procedures with the status "INVALID" where not shown in the DbExplorer
- The JOIN completion did not always detect the FKs correctly.
- Cancelling an import did not rollback the changes.
- When reloading the table list in the DbExplorer while "editing" mode was active, the table list was not retrieved correctly.
- Using WbCopy with schema qualified table names did not work properly when the target connection was using a different default schema.
- The rowcount in the statusbar was not always showing the correct values when more than one result was present
- JOIN completion did not work
- WbCall did not work for functions that were using OUT parameters
- When using a query as the source for WbCopy that used column aliases between databases that store object names in different case a wrong isnert or update statement was created
- When changing the current database, the object cache was not updated correctly
- "Filter by selected value" did not work for boolean columns
- For PostgreSQL, columns defined as bit(x) with x > 1 where not displayed correctly.
- When running a statement there was a built-in limit on 15 warnings that would be displayed by SQL Workbench. That limited the output of messages with RAISe NOTICE to 15 as well in PostgreSQL.
- The datatype for parameters in Oracle stored procedures was not always displayed correctly.
- When selecting JdbcOdbc bridge as the Driver class, SQL Workbench incorrectly showed an error message that the driver could not be found.
- Copying a table's column definitions into the clipboard did not work.
- When using WbCopy and -createTarget with a fully qualified table name (otherschema.sometable) the table was not created in the specified schema
- Postgres DOMAINs where not displayed if the DOMAIN was created in a schema that is not in the schema search_path
- A selection of '*' in the DbExplorer's schema selector was not restored if "Remember DbExplorer schema" was enabled for the workspace
- -quoteCharEscaping=duplicate was not working for WbImport if a quote character other than " was used.
- Procedures were no longer displayed in DbExplorer for DB2.
- A workaround for an Oracle driver bug was implemented, where the datatype for TIMESTAMP(3) was reported incorrectly.
- The generated XML content was not valid for ODS or OpenXML export if the generating SQL contained characters that needed escaping in XML.
- Statements where not closed properly when retrieving Oracle Object type information.
- Oracle RAW columns were not displayed correctly if the automatic data conversion was turned on.
- Using WbDataDiff (and WbSchemaDiff) with the -referenceSchema parameter or selecting specific tables for comparison did not work.
- Optimize column width calculated a width that was too wide (and increased with the total number of columns)
- When using the DataPumper to import xml files, non-standard column names were not quoted properly in the UPDATE statement
- When saving and loading the same file an empty line was appended each time the file was loaded.
- The console interface was no longer working.
- Importing multiple zipped text files into tables with BLOB columns did not work when using a batch size > 1
- When copying data to the clipboard, the data was always copied in the column order as retrieved from the database. If the column order was changed, this was not reflected in the copied data
- If a stored procedure in Oracle with the same name existed as a standalone procedure and a packaged procedure, the procedure columns for the standalone procedure where not displayed correctly in the DbExplorer
- When using the new lobsPerDirectory parameter for WbExport, the directory numbering did not restart with a new table.
- WbSchemaReport created invalid SQL if column names contained characters that needed a replacement with an XML entity.
Build 109 (2010-08-15)
Enhancements
- The context menu of the procedure list now has a new item "Put WbCall into..." (similar to the "Put SELECT into") for tables. Thanks Andreas for contributing this.
- When exporting LOB data into external files using WbExport, the generated LOB files can now be distributed over several directories to avoid directories with too many files
- WbExport now supports two new literal formats for PostgreSQL when exporting SQL statements using binary data (pgDecode and pgEscape)
- For MySQL table comments can now be shown in the DbExplorer by setting the property workbench.db.mysql.tablecomments.retrieve=true in workbench.settings
- WbDataDiff now outputs differences for foreign key in their own tag listing all FK columns instead of listing the foreign key as a modification for each column.
- A new option in the DataPumper is available to automatically select a matching entry in the target table dropdown when the source table is changed
- Changesets for WbRunLB can now also be selected by specifying an author (not only the ID)
- WbExport now only exports TABLEs (views, synonyms and similar objects where included by default until now). To include other types than tables, a new parameter -types has been added.
- When editing a value in the result set, the value can now be set to NULL (either through the popup menu or a shortcut)
- Sequences and UDTs in Derby 10.6 are now supported
- A new editor option to disable "Execute selected" when no text is selected is available.
- A new commandline option (-lbDefaults) is available to read connection information from an existing Liquibase defaults file
- Commandline options (e.g. for batch mode) can now also be stored in a properties file. A new option -arguments defines the file to be used
- For WbImport, select statements (referencing columns from the input file) can be defined in the -columnConstants argument. See the manual for details
- A new option (includeColumnComments) for WbExport is available to include column comments in the output (all formats except text files)
- A new command WbRunLB to extract and run the SQL statements from a Liquibase changeSet (<sql> or <createProcedure> tags) is available
- Window sizes and position are now stored separately per screen resolution
- When displaying the SQL for a view or table in PostgreSQL, associated RULEs are not included
- The quickfilter in the DbExplorer can now be changed to accept "normal" wildcards instead of regular expressions
- WbSchemaDiff now detects renamed foreign keys and indexes
- When using -continueOnError WbImport does not treat missing or empty files as an error, it only shows a warning.
- MySQL's syntax for changing autocommit mode is now also supported (SET AUTOCOMMIT = 1 instead of SET AUTOCOMMIT ON)
- A new command WbFetchSize is available to change the default fetch size of the current connection without the need to change the connection profile
- Workspaces loaded with "Workspace -> Load Workspace" are now added to a "Recent Workspaces" menu
- When an import with multiple files fails, the error message now includes the parameter to skip the successfully imported files, when re-running the WbImport command
- A new option to exclude tables for WbExport using -excludeTables is available.
Bug fixes
- The panel selection for "Put SELECT into" in the DbExplorer included DbExplorer panels if the DbExplorer was not at the end.
- For Oracle, overloaded procedures and functions (in packages) are now displayed correctly in the DbExplorer.
- For PostgreSQL 8.4 and above the source for procedures without parameters was no longer displayed.
- DESCRIBE did not longer work for Informix
- Fixed sequence, view and procedure display in the DbExplorer for DB2 on iSeries (AS/400)
- The source code for Postgres TYPEs was not show correctly.
- The source code for Postgres functions returning SETOF or TABLEs was not show correctly.
- WbDataDiff failed with no clear error message when the columns from the source table were missing in the target table.
- WbSchemaDiff did not work when indexes were included (-includeIndex=true)
- When the maximum number of backups for workspaces was reached, the newest backup was overwritten instead of the oldest
- Auto completion of column names did not work for table or column names that contained spaces (and thus needed qutoes)
- The width of the header was not evaluated correctly for all look and feels when optimizing column widths
- When initiating editing a column that is rendered as multiline column by using the DELETE key, a non-printable character was inserted into the text field
- When exporting text columns from PostgreSQL, they are now properly recognized as CLOB columns (e.g. for the -clobAsFile parameter)
- The SQL console did not start if a profile was passed (using -profile) on the commandline that did not exist
- Fixed some initialization problems with the DbExplorer which caused errors when using SQL Server with the Microsoft Driver
- The generated WbCopy command in the DataPumper was wrong, if * was selected as the schema
- Values of TIME columns were exported (incl. copy to clipboard) as dates
- When entering an invalid expression in the quickfilter of the DbExplorer, the filter was no longer working
- Postgres rules with the name _RETURN were not displayed in the DbExplorer
- For Oracle, WbCall did not work for stored procedures with ref cursors that were accessible only through a synonym
- Fixed a problem with an endless loop when displaying foreign key references when multiple FK constrained built a cycles
- Tried to make detection of Oracle packaged procedures more robust in WbCall
- The reverse engineered source code for views contained a wrongly placed semicolon
- Cancelling a connect due to an unsaved file did not work
- WbRun was always using the alternate delimiter to parse the file
- The tooltip for a column heder was not displaying the correct information if the column order was changed using drag and drop
- WbCall did not work with Oracle functions returning a REF CURSOR
- When the option "Confirm tab close" was enabled, no confirmation was needed when using "Close other tabs"
- The display of trigger functions in Postgres that did not have a comment was not working
- Specifying a config directory using -configDir that needed quoting did not work
- Statements with character literals and embedded single quotes (e.g. ' test ''') were not formatted correctly
- Oracle Package functions were no longer displayed in the procedure tab of the DbExplorer
- The "Object Info" function did not display information about TYPEs (e.g. Oracle, Postgres)
- For Oracle object TYPEs, member variables declared with the data type "NUMBER" where not displayed correctly
Build 108 (2010-04-05)
Enhancements
- The argument parser for Workbench specific commands has been changed in order to recognize empty values (e.g. -replaceWith=' ') Existing scripts should work, but it could be that some combinations of parameter values are not covered by my tests. So please verify that your scripts still work with the new version.
- A new option for WbExport (-replaceValues) is available to replace text (using regular expressions) in all character columns during export.
- For Oracle the DbExplorer will now also show OBJECT TYPEs
- For DB2 the list of procedures is no longer retrieved through the driver, so that functions will also be shown in the DbExplorer.
- When using a JDBC 4.0 compliant driver the table definition in the DbExplorer will now also display the IS_AUTOINCREMENT flag. (with pre-JDBC 4.0 drivers the column will always display NO)
- For SQL Server, column and table remarks that are defined through sp_addextendedproperty() are now retrieved and displayed in the DbExplorer.
- Computed/Virtual columns are now shown in a table's SQL for Firebird, H2 Database, HSQLDB 2.0, Oracle 11g, DB2 (LUW) and SQL Server 2005
- The DbExplorer will now show the (correct) source code for user defined AGGREGATEs in PostgreSQL
- When running stored procedures with parameters, the name of the parameters are now shown in the parameter input dialog if available. If running stored procedures with out parameters, the result tabs will be named after the parameters now (if the parameter names are available)
- The minimum version for POI (XLS export) has been raised to 3.5 in order to support Microsoft's new OfficeOpen XML Format. Therefor the naming of export types has been changed: xls still writes the old (Pre 2003) binary format, xlsx now writes the new OOXML format (Office 2007) and the (new) type xlsm writes the Office 2003 XML format (xlsm is equivalent to the previous xlsx type). To be able to use the new xlsx format, additonal libraries (apart from poi.jar) are needed: poi-ooxml.jar, dom4j-1.6.1.jar, geronimo-stax-api_1.0_spec-1.0.jar, ooxml-schemas-1.0.jar and xmlbeans-2.3.0.jar
- Two new options for spreadsheet export have been added. An option to turn on the auto-filter for ODS and Excel XML exports (-autoFilter). An option -fixedHeader to freeze header row which is available for all three formats. Both options are turned on by default.
- A new option has been added to highlight the result tab when the number of rows defined in the "Max. Rows" setting has been reached. (Tools -> Options -> Data display -> Show Max Rows. warning)
- A new commandline option for specifying the connection in batch mode has been added. Using -connectionProperties extended properties for the JDBC driver can be passed on the commandline. As the properties need to be specified as key value pairs the value has to be quoted, e.g. -connectionProperties='myprop=somevalue'
- A new entry to control the usage of the table's schema in an SQL export (WbExport -type=sqlinsert) has been added. This overwrites the default setting from the options dialog (Tools -> Options -> SQL Generation)
- For results the row numbers can now also be displayed (similar to the line numbers in the editor)
- Oracle object type columns are now displayed correctly. As this is a generic solution to display JDBC "Struct" values, it should work for any driver that returns the correct type.
- Integrated the JLine library to allow command line editing for console mode on Linux (and other Unix like systems).
- A new command WbListSchemas is available.
- A new option (-infoSheet=true) is available for spreadsheets exports (ods, xlsx, xls) to append an additional worksheet that contains the SQL that generated the export.
- A new option (-tableWhere="....") is available for WbExport to append a WHERE clause to all tables that are exported (e.g. WHERE modified_date > DATE '2010-01-01')
- The behaviour of the quick search for the auto-completion can now be configured. A new option "Partial match" will allow search anywhere in the listed objects (not just at the start). Another option allows to filter the displayed items according to the quick search value (instead of simply jumping to the first matching item). Alphabetic sorting of table columns can now be disabled (in that case, the columns are listed in the order as returned by the database). The new options have been moved to a separate page in the options dialog
- When toggling the option "Allow table altering" for the DbExplorer, this is now immediately reflected in any open DbExplorer (previously after changing the option the DbExplorer had to be closed and re-opened)
- For query results, the column comments can now also be retrieved. The column comments (if available) are then displayed in the tooltip of the result's column header. The retrieval can be enabled in Tools -> Options -> Data display -> Retrieve column remarks for queries
- WbExport can now also write a "control" file for DB2's IMPORT command (-formatFile=db2)
- A message box can now be displayed when all running scripts have been finished. If the application is minimized, displaying the message box will also restore the application's main window.
Bug fixes
- Setting the loglevel for the built-in logger was no longer working
- Displaying the definition for cross-schema synonyms was no longer working.
- WbSchemaDiff did not run in batch mode when procedures where included. Thanks to Denis for finding this.
- Activating the column filter in a table's column list in the DbExplorer did not work when hitting enter in the input field.
- When quoting column names for WbCopy's column mapping, the quoted columns where not detected properly (e.g. -columns='name/"Name", id/"Id"')
- The new "show max rows warning" option does not work for all Look & Feels. Some ignore the setting of a background color. If changing the background color is not supported the text of the result tab is now displayed in the chosen color.
- Fixed some more corner cases where the new row number display was not in sync with the result.
- The new row number display was not always in sync with the result table.
- Defined schema or catalog filters in the connection profile were not displayed correctly (even though they were stored correctly).
- Exporting only some of the columns of a result using "Save As" did not work.
- When using "Save Data As" to export a result set, the settings for an Excel export where not saved
- The current schema and database of the DbExplorer were not always saved correctly in the workspace.
- Stored procedures that used a REF CURSOR as an INOUT parameter could not be executed using WbCall
- If a table with the same name existed in two schemas, the DataPumper would show the coloumns for both tables, not just the selected one.
- The option to display row numbers for results was not saved from within the options dialog
- WbSchemaDiff reported the compared sequences as procedure-info in the diff summary
- The dialog to choose the update table for a multi-join SELECT result can now be resized
- When moving a macro from one group to another using drag and drop (instead of Cut & Paste) the change was not applied.
- When copying the data of a result set into the clipboard, the column headers were not copied when the keyboard shortcut was used.
- When moving a DbExplorer away from the end, the tabs were not restored correctly when loading the workspace later.
- Some properties for SQL generation were not migrated correctly from previous versions
- Setting the editor color for datatypes changed the color for the cursor (and vice versa)
- When changing inet, macaddr or cidr columns in the result set, wrong statements were generated for PostgreSQL
Build 107 (2009-12-16)
Enhancements
- SQL Workbench/J now requires Java 6.
- Changing column definitions or renaming tables directly in the DbExplorer can be now disabled in the Options dialog.
- The connection profile has a new option to filter schema and catalog names from the dropdown in the DbExplorer.
- A new option to keep the highlight when using "Highlight current statement" has been added (Tools -> Options -> Editor)
- A new option to set the default value for the Max. Rows field when opening new tabs is available (Tools -> Options -> Data Display)
- UTF and ISO encodings can now be entered (e.g. for WbExport or WbImport) without dashes: UTF8, UTF16, iso88591. They will be converted internally to the correct names.
- Log4J logging can also be turned on by supplying a configuration file as a parameter for workbench.log.log4j so that log4j.xml does not need to be in the directory where sqlworkbench.jar is located.
- Peter Franken contributed a Log4J integration for SQL Workbench/J. In order to use Log4j, the library log4j.jar (without a version number) must be present in the directory where sqlworkbench.jar is located. The log4j.xml must also be placed into that directory. To turn on log4j logging, the property workbench.log.log4j must be set to true (either in workbench.settings or as a system property) If log4j is used, none of the logging properties from workbench.settings will be applied. Log4j must be completely configured through log4j.xml.
- Blobs can now be exported and imported as "text values" by encoding the binary values (hex or unicode).
- sqlwbconsole.exe can now also be used to run SQL Workbench in batch mode (e.g. sqlwbconsole.exe -script=do_something.sql)
- A new menu item "File -> Close Window" is available to close the current window.
- For JDBC 4 drivers that support the SQLXML type, XML columns are now displayed directly (without the need to use casting or similar methods). Currently it seems that only Postgres and DB2 have implemented this properly in their driver.
- A new option to control the behaviour when closing a tab has been added. If "Activate the last used tab" is enabled, closing a tab will no longer select the "next" tab, but the previously used one. The new option is enabled by default.
- When opening a file from the the main menu (File -> Open), the file can now be opened in a new editor tab.
- Columns can now be added from within the DbExplorer's table definition panel
- The generated source for inherited tables in Postgres now shows the parent table
- WbSchemaDiff and WbReport now include triggers.
- WbDataDiff can now output the result as XML files.
- The WbXslt command can now handle stylesheets that include other stylesheets.
- In the macro editor auto completion is now enabled (if the main window is connected)
- workbench.settings will now only retain those properties that differ from the built-in defaults. This makes rolling out changes to the defaults easier. Any property that has been customized will remain in workbench.settings (but will not benefit from bugfixes made to the default properties)
- Result tabs, can now be re-orderd using drag and drop.
- The column definition of tables in the DbExplorer can now be edited and the approriate ALTER statement can be generated for the changes. Primary keys can be dropped and created from within the column definition.
- Tables (and other objects if the database supports this) can now be renamed from within the table list of the DbExplorer. The comment for a table can also be changed. To apply the changes a new menu option in the context menu is available to generate and run the necessary ALTER statements.
- The editor and resultset tabs can now have their own close button. (Tools -> Options -> General)
- For SQL Server 2005 and above, synonyms are now retrieved in the DbExplorer.
Bug fixes
- The trigger list panel (where all triggers where shown) was not working any longer.
- When copying a column name from the header's popup, the wrong name was copied when the columns where re-arranged using drag&drop.
- Fixed wrong formatting of multiple common table expressions (WITH .. AS) and multiple tuples for a VALUES expression.
- The (search) history dropdowns were filled in the wrong order (the oldest entry was the first entry)
- Using WbCall with a fully qualified procedure that returned a REF CURSOR did not work.
- The navigation for referencing/referenced rows was no longer available in the DbExplorer's data tab.
- Domain and Enum information was not displayed in the DbExplorer for Postgres versions before 8.4
- When using WbDataDiff with tables where the column names differed in their case "FirstName" vs. "firstname" the generated UPDATE or INSERT statements were wrong. WbDataDiff now considers column names that only differ in their case as identical.
- The new "Add column" feature was only configured for PostgreSQL
- Retrieving columns with type "timestamp" did not work for SQL Server.
- When adding a new column in the DbExplorer, column comments were not included.
- When reformatting statements, workbench variables that contained an underscore (e.g. $[my_id]) where not detected correctly (and thus the statement was not formatted correctly)
- The (table independent) trigger list panel in the DbExplorer did not show the trigger source correctly if multiple triggers had the same name.
- Execute current was not working for MySQL connections.
- If tables were created using double quotes (e.g. CREATE TABLE "MyTable"), the table details were no longer displayed in the DbExplorer
- If a connection script was defined in the connection profile, an error was displayed during connect (even though the connection script was executed correctly)
- The settings of the DbExplorer where not saved when the DbExplorer was opened as a separate window.
- When using "Highlight Current statement" and executing the statement at the cursor (Execute Current), the statement was not highlighted when an error occurred.
- "Execute current" was not working any longer.
- The editor color for datatypes selected in the options dialog was not used.
- The "Show Single Record Dialog" menu item in the table's popup menu was not always enabled.
- When copying a macro, the keyboard shortcut was copied as well.
- When cancelling the prompt to define an update table for a multi-table SELECT statement, an error was displayed.
- WbGrepData did not work if tables were listed explicitely using the -tables parameter.
- Auto completion was not working properly with Postgres and tables that were stored in the public schema.
- "WbMode confirm" was not working if the profile was set to read only.
- The BLOB dialog could not be opened from within a result set if the connection profile was set to read only.
- Formatting UPDATEs with Sub-Select was not working properly
- WbCopy now removes any trailing semicolon from the SQL query when using query based copying.
Build 106 (2009-08-31)
Bug fixes
- Connections to DB2 were no longer working
Build 105 (2009-08-31)
Enhancements
- Added support for H2 domains and constants
- For Postgres, if a SEQUENCE is tied to a column, this is now shown in the sequence's source and a comment is added for non serial columns in the table's source.
- Postgres RULEs are now displayed in the DbExplorer
- A new command WbMode is available which can change the "read only" and "confirm updates" setting for the current connection without modifying the underlying connection profile.
- Values for non-Standard datatypes can now be edited in the result set provided the DBMS supports some kind of function of cast to convert a string literal to that datatype. Default casts for the following PostgreSQL datatypes have been added: inet, cidr, macaddr
- A new help menu is available to display the online manual for the current DBMS. Default configurations (URLs) for PostgreSQL, Oracle, H2, HSQLDB, MySQL and Microsoft SQL Server have been added.
- A new command WbGrepSource is available to search the source code of all database objects for specific values (patterns). A GUI for this is also available at "Tools -> Search in object source".
- The table search panel can now search with more sophisticated conditions. This is done by searching in the application rather than using a LIKE condition in a SELECT query. Both search types are available in the "Search Table Data" tab of the DbExplorer. The functionality of the client side search is now also available through the new Workbench command WbGrepData
- Added support for SQL Server TYPEs in DbExplorer
- The default label used for new tabs can now be configured using the property workbench.gui.tabs.defaultlabel in workbench.settings.
- Added support for Postgres DOMAINs and ENUMs in DbExplorer
- The text and background color for the editor, the message area and the data tables can now be configured
- A new menu item to close all result tabs at once is available.
- In the table definition display (columns) in the DbExplorer, a new popup menu item is available to create a default INSERT or SELECT statement for the selected columns.
- A new parameter for WbExport is available: -sourceTablePrefix that defines a common prefix for all tables defined through -sourceTable. The prefix will be appended to all table names without any changes.
- A new option to display information about database objects is available through "SQL -> Object Info". If text is selected in the editor, this action will try to find a DB object with the name that is indicated by the selected text. It will look for tables, views, synonyms, sequences, procedures/functions and triggers. If something is found the definition (e.g. the list of columns) is displayed as a result set in the current SQL tab (the result will be appended). For objects with only a SQL source (e.g. a procedure) the source will be written into the messages tab.
- When specifying date/time format string (e.g. when importing a file or in the options dialog), the input is now validated and an error message is shown.
- The SQL Macros can now be displayed in a floating window. Double clicking a macro will run the macro in the currently selected SQL tab.
- The generation of the source SQL for a table can now be configured in order to use the functions the DBMS supports (e.g. SHOW CREATE TABLE for MySQL), so that incompatibilities of the DBMS with the ANSI SQL standard can be worked around. A detailed description is in the manual in the section "Customize table source retrieval" of the chapter "Properties in the .settings file"
- When using WbExport to generate HTML two new parameters can be used to specify HTML code that is added before and after the actual export data (-preDataHtml, -postDataHtml)
Bug fixes
- Exporting a table's data from within the table list in the DbExplorer was no longer working.
- The default fetch size of a connection profile could not be reset (empty).
- Fixed the autocompletion if a table was specified using schema.something.
- Shortcut keys which involved the Enter could not be defined.
- The Save As dialog to save result data now only checks for the update table and primary keys if needed.
- Using PostgreSQL's DELETE ... RETURNING did not work.
- Formatting a statment that used "AS ofx" for a column alias, would treat AS OF as a keyword and the formatted created a wrong syntax (AS OF x)
- Dropping a function from within the DbExplorer generated the wrong SQL for Postgres
- DESCRIBE is no longer handled by SQL Workbench/J when connected to a MySQL database.
- When using WbImport with -header=false but no column definitions, the import would fail if the table had more columns than the import file. The additional columns of the table are now ignored as in previous versions.
- "Create index" from within the table definition display in the DbExplorer was no longer working.
- The "Object Info" feature did not work on Postgres if the selected object was a view.
- In Oracle running a SELECT using a table name that was also used as a global symbol, the generated statements for changes in the result set referenced the schema PUBLIC instead of the current schema.
- When re-ordering the columns using drag-and-drop and then displaying the single-record dialog, the content of the columns was mixed up.
- When re-ordering the columns using drag-and-drop, the order was reset when changing data in the result.
- The alternate delimiter was not always processed correctly.
- When using the DataPumper to import text files and an invalid date format was specified, no table columns could be selected.
- The -schemas parameter for WbReport was ignored.
- When loading a new file into the editor while an error selection was present, the selection was still shown after the new file was loaded.
- When prompting vor variables, entering an empty value would remove the variable from the internal variables pool. It is now stored with an empty string as its value.
- (Un)Comment selection did not work if the cursor was in the very first column and no lines where selected.
- For WbCopy -createTarget was not working if the source was a query.
Build 104 (2009-05-06)
Enhancements
- All fonts can now be reset to their defaults in the options dialog.
- A result tab can now be reloaded (by re-running the original SQL) through the context menu of the result tab.
- It is now possible to cycle through the tabs using Ctrl-Tab and Ctrl-Shift-Tab
- The keyboard shortcuts for editor movements can now be configured. The defaults have been adjusted to comply with the Apple guidelines on Mac OS
- The generating SQL query of a result tab can now be displayed by double-clicking on the tab or through the context menu of the result tab.
- WbCopy (and the DataPumper) now optionally ignores any error that occurs when dropping the target table. For that, a new parameter is available -ignoreDropError which defaults to false
- When using XSLT to transform output of e.g. WbReport or WbSchemaDiff, the name of the stylesheet can now be specified without a pathname if located in the xslt subdirectory or the config directory.
- When assigning a keyboard shortcut to a macro, the shortcut's character would be inserted into the editor when the macro was executed.
- CHECK constraints are now reported individually in the output of WbReport and WbSchemaDiff. WbSchemaDiff has a new parameter to match check constraints by name or by expression only.
- A result name (defined using @wbresult) is now used as the header when printing the result.
- The editor can now be configured to either uses spaces or real tab characters (as before)
- The editor can now be scrolled without moving the caret by using Ctrl-Down and Ctrl-Up
- Autocompletion is now supported for the SQL statement EXEC and will show a list of stored procedures. WbCall and CALL are also recognized.
- When showing the sequence definition for an Oracle sequence the column LAST_NUMBER is now also displayed in the DbExplorer
- When defining a new filter for a result set, the currently selected column is now pre-selected in the dropdown if no filter is defined.
- When using WbCopy's -createTarget=true, data type mappings can now be specified in workbench.settings that enhance or overwrite the data type mapping returned by the driver. Details can be found in the manual.
- Manually changed column order in the table data of the DbExplorer can now be saved. Either manually through the popup menu of the table header, or automatically through an option for the DbExplorer.
- When defining the jar library for a Look & Feel, the application now scans the libraries for the approriate classes
- Removed the limitations that DbExplorer panels must be the last tabs and cannot be the only tab.
- A new option is available to customize how external files that are loaded in an editor tab are remembered in the workspace.
- A single record dialog is now available to edit data in a result set (Data -> Single record dialog)
- A new option to control the use of uppercase keywords for the SQL formatter is available (Tools -> Options -> SQL Formatter)
Bug fixes
- Versioned backup of a profile's workspace did not work, if the workspace was not specified with a full name in the connection profile.
- Fixed a repainting issue on MacOS in the toolbar when switching between DbExplorer tab and editor tabs
- When displaying Oracle Packages the selected procedure/function was not highlighted in the source view of the package.
- Ctrl-C was no longer working in the source display of the DbExplorer if it was opened as a separate window
- Double clicking in the status bar would open a new SQL tab
- Tabs could not be renamed if more than one window was open.
- The list of SELECT columns in the autcompletion popup was not displayed correctly (e.g. for GROUP BY) when the DISTINCT keyword was used.
- The source of the index definition was not displayed in Postgres, if a table had a primary key and one additional index.
- If a profile did not have a name, SQL Workbench failed to display the connection dialog.
- The current database was not selected in the DbExplorer for DBMS using Catalogs instead of Schemas (e.g. MySQL)
- Reformatting WbVarDef would incorrectly replace it with WbVarDefine
- Workspace -> Assign Workspace was no longer working
- When "Automatically optimize row height" was enabled, sorting a result set would not redraw the table correctly.
- Sequences were no longer displayed for DB2 on Windows/Linux
- User defined PK mappings were not remembered
- When running WbImport, errors where not shown any more.
- Fixed a problem when formatting inline views that contained unions and redundant brackets
- The driver dropdown in the connection dialog was not updated when a new driver was added while the connection dialog was open.
- The About Dialog was not displayed on MacOS when more than one application window was open.
- The quick filter in the Trigger panel was no longer working
- Copy & Paste shortcuts were not working on MacOS
- "Save Data As" was not working if it has never been called before
- Fixed displaying the PDF manual on MacOS (Thanks Markus!)
- Some workspaces were not loaded properly and editor tabs would be removed upon loading.
- When refreshing the source for a table or a view, the column definition was not reloaded from the database.
- When selecting a different view in the DbExplorer while the view source was displayed, the wrong source code was displayed for the newly selected view.
- When MySQL was not set to ANSI mode, primary key columns that needed quoting were not detected properly due to MySQL's non-standard quoting character (in non-ANSI mode)
Build 103 (2009-01-31)
Enhancements
- Removed the need to specify the columns of the source query for WbCopy. If -columns is not specified when using -sourceQuery it is assumed that the names of the query columns match the names of columns in the target table.
- Closing of editor tabs can now be confirmed (General Options)
- The display strategy for the tabs in the main window can now be changed between scrolling and stacked ("Scroll tabs" in the general options)
- Individual SQL panels can now be locked to prevent accidental closing of the panel.
- A new option to close all other tabs has been added to the popup menu of the tabs.
- Comment lines in workbench.settings where the very first character is a # are now preserved if immediately followed by a property line. A comment line that is followed by an empty line will still be removed.
- Display SQL source for comments for additional object types such as views, sequences, procedures where possible.
- The "Manage Drivers" dialog now searches the selected jar file for a JDBC driver if a new library is selected.
- The placement of the details tabs in the DbExplorer's table list can now be configured through the options dialog, not only in the settings file.
- The syntax highlight colors can now be configured through the options dialog
- The "select expression" replacement is now also used inside the "Search table data" tab.
- For specific datatypes, data retrieval in the DbExplorer can now be done by applying expressions to the column when building the SQL to select the data. The replacement is defined per database and datatype in workbench.settings. For details please refer to the manual ("Customize Data Retrieval" in the chapter about the DbExplorer)
- A new option to make versioned backups of the workspace is now available (Tools -> Options -> General -> Create Workspace Backup)
- The removal of comments when the "remove comments" option is active has been moved to a later stage in the statement processing. This way the new feature to name result sets can be used with DBMS that do not support embedded comments in SQL statements.
- The dropdowns for schema/database can now be reloaded in the DbExplorer
- The result set tabs can now be closed or renamed through their context menu.
- Completely reworked the macro handling. Macros can now be grouped, manually sorted, hidden from the menu and can be assigned a shortcut. Once the old WbMacros.xml has been opened and saved with the new version, older versions of SQL Workbench cannot read that file any longer!
- Result sets can now be named by specifying a keyword in the comment prior to the statement to distinguish different result tabs. Please refer to the manual for details ("Displaying Results" in the chapter "Using SQL Workbench/J")
- Added 'WbListTriggers' commands to list all triggers in the database (showing the information from the "Triggers" panel in DbExplorer) and WbTriggerSource to display the source of a trigger. The DESCRIBE command now also returns the list of triggers for a table.
- When importing a text file, WbImport does no longer tries to guess different timestamp or date formats if the default format leads to an error. Instead an error is reported immediately.
- A new commandline argument -interactive is available when running in batch mode. This enables parameter prompting and execution confirmation if necessary.
- WbInclude can now be called with just a filename. If no parameter switch is present, it is assumed that the rest of the commandline is the filename. In that mode, no further parameters can be specified (WbInclude will use defaults then)
- The HTML manual is now also distributed as a single HTML page The display of the single page from within the application can be enabled by setting the property workbench.help.singlepage=true in workbench.settings
- A new workbench command to show the source of a stored procedure is available (WbProcSource)
- WbList has been extended so that the object names and/or types can be specified.
- WbCopy now also supports -truncateTable (not only -deleteTarget)
- When using a line filter for a text import the matching is less strict now. The pattern does not need to match exactly the line but must occur in the line (technically it was changed from matches() to find()) to make filtering complete lines easier.
- SQL Workbench/J can now be run interactively in console mode To start the SQL Workbench/J console, use the supplied scripts sqlwb.cmd or sqlwb.sh
- The status bar will now display the number of selected rows If numberic values from a single column are selected, the sum of the values will be displayed. This can be turned off in the Options dialog ("Data Display" section)
- The messages in the message tab can now be deleted manually (Edit -> Clear messages)
- A new option for WbExport is available (-writeEmptyResults) to surpress the creation of the outputfile if the result set is empty. The default is -writeEmptyResults=true
- The values for search & replace in the editor are now saved and available as a dropdown in the dialogs
- The logfile can now be displayed directly from within the application using Help -> View logfile
- The location of the settings file and the log file are now displayed in the Options dialog
- The collation to be used when sorting a result set can now be selected in the options panel ("Data Display" page)
Bug fixes
- The placement of the NULL and DEFAULT keywords were not correct in the generated table source in the DbExplorer
- When displaying the source for views or tables in the DbExplorer grants that were made to the current user were not displaye (thanks to Marcus for pointing that out)
- When the tabs in the mainwindow where displayed on two or more lines, the context menu to rename a tab was no longer displayed.
- Fixed several issues with retrieving object sources for DB2 on z/os (thanks to Frank!)
- When selecting data from another user's schema, and updating the result set, the generated SQL to update the table did not contain the schema.
- The -sourceDir parameter for WbImport was not working with relative directories if WbImport was called from within a script using WbInclude
- The "Tab" key was no longer working in the editor
- "SQL -> Export Query result" was not working
- The shortcuts for Copy, Cut & Paste can now be defined through the shortcut definition dialog.
- WbCopy (and DataPumper) did not work with tables that had non-standard column names that needed quoted (either because the names consited of mixed-case or they contained special characters that required quoting.
- Changing the background of the connection information in the toolbar only worked with the Nimbus look and feel.
- When a macro was invoked using a shortcut with "Shift" the current text in the editor was replaced.
- The replacement of macro parameters (e.g ${current_statement}$) was broken after the macro rework
- The multi-page HTML manual was no longer displayed
- "Remove comments" was not working properly if the comments contained quote characters
- When copying a connection profile, the property "Remove comments" was not copied.
- Removed the brackets from the application name that is set in the connection properties to work around the strange limitation in the current Oracle drivers (11.1.0.7.0)
- Drop Trigger from within the DB Explorer was no longer working
- WbExport with -outputDir did not work any longer if only a single table was specified.
- Using WbExport with -writeEmptyResults=false together with -append=true did not produce the expected result.
- Fixed some errors in the german localisation
- When using multiple windows together with "Separate Connection Per Tab" the application could lock up.
- When changing database or schema in the DbExplorer the table information was not cleared properly
- A hack has been implemented to display SQL Server's timestamp columns (which are returned as a byte array) as a hex string (the same way the Query Analyzer displays the timestamp column)
- The list of stored procedures was not displayed
- When reformatting SQL Statements, Workbench variables where not treated correctly
- WbCopy did not work when specifying multiple source tables with -deleteTarget and -checkDependencies
- Column names with Chinese characters were not displayed correctly
- WbCopy incorrectly assumed that the JDBC driver does not support batched updated and disabled JDBC batching
- -excludeFiles for WbImport did not work if the filename contained a dot (e.g. dbo.table.txt)
- Editing result sets that were retrieved from more than one table was no longer working.
- Tried to make the application more robust against out of memory errors.
- The parameter -delimiter for WbInclude now uses a colon as the delimiter to specify a single line delimiter, e.g. -delimiter=GO:nl in order make quoting of the parameter not necessary and avoid confusion with an actual semicolon in the definition. The old style is still supported but will be removed in the future.
- When a profile is set to "Read Only", in place editing of results is now disabled.
- When using a WbExport together with a SELECT statement, the "Max. Rows" option (lower right corner of the MainWindow) is not longer used for the SELECT.
- The status column was not always displayed if something was changed in the result set
- The setting to sort with a language specific collation was not working any longer.
- -excludeTables did not work properly in all cases for WbSchemaDiff
- If the definition for a Look & Feel was not complete (e.g. a missing classname) the "Look & Feel" panel in the Options window could no longer be displayed.
Build 102 (2008-09-15)
Bug fixes
- The connection dialog showed a wrong label for the "Remove comments" property
Build 101 (2008-09-13)
Enhancements
- Made WbSchemaDiff a bit more "robust" when comparing schemas from different DBMS
- When displaying the source for a view, grants given on that view are now also displayed for Postgres, Oracle, HSQLDB, H2, MySQL, Firebird DB2, Derby and SQL Server
- A new option (Options -> Data Editing) is available to warn when a result set with changes will be discarded (e.g. when running a new SELECT while changes to the current result have not been saved)
- The DataPumper table dropdown now displays Excel Worksheets
- A new option for WbSchemaDiff is available that treats views from the reference schema just like tables, and compares them to corresponding tables in the target schema.
- A new option to automatically optimize the individual row heights to match possible multi-line values is available. This can be applied automatically after the retrieval of the data, or manually using View -> Optimize Row Height (or the popup menu on the column header)
- The parameter -trimValues for WbImport can now also be used for XML imports.
- A new parameter -rowNumberColumn is available for text exports that can be used to generate a column with the current row number. If the parameter is specified with a value, the value defines the name of the additional column. If the text file is not created with a header a value for the rowNumberColumn must still be given to enable the creation of the additional column. The row number will always be exported as the first column.
- A new parameter -excludeFiles is available for WbImport when using the -sourceDir switch. With this parameter, files can be excluded while processing the contents of the directory. The value is a comma separated list of (partial) file names. Any filename that contains one of the values will be ignored.
- A new parameter -ignoreOwner is available for WbImport. In case export files have been created including the owner information (e.g. myschema.person.txt) the owner can now be ignored when importing files from a sourcedirectory.
- -quiet has been removed, and is now included with the -feedback=true parameter.
- The display of warnings can now be surpressed. This can be set in the connection profile, as a parameter when connecting in batch mode (-hideWarnings=true) or using the new command WbHideWarnings [true|false]
- The usage of the generic execute() method when running select statements can now be enabled (instead of using executeQuery()) using the property: workbench.db.select.genericexecute=true in the file workbench.settings
- A new parameter -quiet can be specified in batch mode, that will surpress some informational messages that are not surpressed when using -feedback=false (or WbFeedback off).
- WbConnect can now be used in GUI mode as well. It will only change the connection as long as the current script is running. The "global" connection will be restored, once the script has finished.
- The number of columns that are put on a single line when reformatting statements can now also be adjusted for UPDATE and INSERT statements.
- The margins used to render data can now be configured using the property workbench.gui.renderer.insets The property value is a comma separated list of integer values to define the top,left,bottom,right insets for a single data cell.
- CHECK constraints were not generated in the DbExplorer for DB2
- A new command WbDataDiff has been added which compares the data of one (or more tables) and creates approriate scripts to update the data of the target table to be the same as the reference table.
- The default encoding (when no encoding is given) for the WbInclude command can now be configured using the property workbench.encoding The default is displayed when WbInclude is run without parameters.
Bug fixes
- The table reference navigation created wrong SQL statements if the same table was referenced through more than one foreign key reference.
- On Linux with the GTK Look and Feel the focus was not set to the "Select connection" window upon startup.
- WbInclude would fail if no connection was available (e.g. because the included script would make the connection)
- Re-assigning a Shortcut was only activated after restarting the application.
- Display of text columns should now work for Informix
- WbExport did not escape the content of columns correctly. Previously the escaping was only done for character data, now it's done for all data types (unless -useCDATA is specified).
- "Check table dependencies" did not always work correctly for deleting tables, when one of the selected tables was also a child of one of the tables that were added during FK checking and that table was a self-referencing table.
- WbSchemaDiff did not release the connections properly.
- The row height was not retained when editing values in the result set or applying a filter
- Calling stored procedures with output parameters was not working properly, especially when regular parameters were needed as well.
- Tried to make retrieval in the DbExplorer more robust agains hanging connections.
- In some cases WbInclude would fail processing a script.
- When using -append=true and -createTable=true for SQL Exports the CREATE TABLE was not written (appended) to the output file (because WbExport would never write the "header" for an export that appends to an existing file, which does not make sense for SQL INSERT exports.
- When importing a directory using -sourceDir, WbImport would treat the files containing tables lobs as regular table files e.g. searching for a table mytable_lobs.
- Resolving table dependencies for INSERT (WbImport) or DELETE did not work if the list of tables contained a self-referencing table that was referenced by another (parent) table.
- A change to the driver for a connection profile was not detected as a change, so the user was not asked to save the profiles when stopping the application
- The toolbar was not always correctly repainted when a workspace was closed
- When "Autosave Workspace" was enabled and the workspace contained an external file, the user was prompted if the file should be saved each time a statement was executed. Now the external file is automatically saved as well, when the workspace is saved.
- When a script ended with a statement that had a dangling single quote, the last (incorrect) statement was not executed at all
- Common Table Expressions (WITH ... AS ...) were not formatted correctly.
- "Copy data to clipboard" was not always enabled, even if a result set was available.
- When using "Search table data" in the DbExplorer, the connection profile attribute "Trim CHAR data" were not used to retrieve the data.
- The SQL source for sequences was no longer displayed.
- The application did not always ask to save the connection profiles even if they were modified
- Triggers were not displayed for DB2 when the server was running on 64bit Windows
- When changing the the current database in the DbExplorer in MySQL, updating the data did not work, because the table in the update statement was not fully qualified (to include the database name)
- The Option "Map Oracle DATE to Timestamp" was only applied when restarting the application
- WbExport's XML format now defaults to XML 1.0 again. An option has been added for WbExport to select version 1.1 if that is needed in order to use the newly allowed characters. XML 1.1 support can be enabled using -xmlVersion=1.1 The default can be set with the property workbench.xml.default.version
- Using WbInclude with a multi-byte characterset (e.g. UTF8) did not work properly
- The WHEN condition for Oracle triggers was not displayed in the SQL source. Thanks to Marcel for the fix.
- WbInclude did not give a proper error message if the specified file was not found.
Build 100 (2008-05-17)
Enhancements
- If the configuration file was changed outside of SQL Workbench the application now asks if the external changes should be overwritten
- A new tab can now be opened by double-clicking in the "free" are of the tab title display (as with Firefox)
- The display of the tab index can now be disabled in the general options.
- A new property to treat Oracle DATE columns as timestamp has been added to the options dialog. If that option is enabled, it will overwrite the setting for Oracle's JDBC driver.
- The XML export now writes XML 1.1 to allow for escaped control characters that are below 0x20
- WbCopy can now optionally delete rows from the target table that are not present in the source table. To enable this, use the parameter -syncDelete=true
- The output of WbSchemaReport now contains a new tag <foreign-keys> that contains the definition for each foreign key to make it possible to create the necessary SQL for multi-column foreign keys. The individual FK references per column are still present
- The execution of connect scripts is now also logged when switching to a tab and a new connection is created.
- WbImport can now import multiple files from a source directory into a single table. When both -sourceDir and -table are specified all files from the source directory are imported into the target table. Note that -deleteTarget does not work in this mode.
- The "Drop Tables" dialog in the DbExplorer can now sort the tables according to their FK references in order to allow dropping them with DBMS that do not support a cascading DROP
- The "Drop Tables" and "Drop Columns" dialogs in the DbExplorer can now also display the generated script.
- WbReport now supports the parameter -reportTitle. The supplied value will be written as report-title into the generated XML.
- A connection profile can now be set to "read only". All statements that could possibly change the database are ignored.
- The log messages from WbCopy are more detailed now. Reporting the number of updated and inserted rows.
- When specifying the complete connection on the commandline the property -seperateConnection is now supported. It defaults to true
Bug fixes
- Sometimes error messages during the connect were displayed twice.
- The formatter did not process CREATE TABLE ... AS SELECT
- When moving tabs while "Use separate connection per tab", the moved tab was not always connected properly.
- Descending indexes were not displayed correctly for Oracle
- When opening a new workspace for the current connection the old workspace was not automatically saved and the connections were not managed correctly if "Separate Connection per Tab" was used.
- Using $wb_skip$ with the -fileColumns parameter did not work when importing multiple files into a single table
- The parameter -fileColumns did not working when importing multiple files into a single table
- The parameter -keyColumns was broken for WbCopy
- When running WbSchemaDiff using -includeSequences=true with a DBMS that does not support sequences the command silently failed without an error message.
- The SQL source for table and column comments was not generated correctly
- The syntax highlighting for multi-line comments using /* .. */ was incorrect
- The data types of the target columns were not retrieved correctly for WbCopy if a column mapping was defined.
- -createTarget=true was broken for WbImport with XML files
- WbExport -type=SQLInsert -createTable=true was broken
- The SQL source for unique keys was not created correctly for SQL Server.
- When creating stored procedures in Oracle, error messages were not displayed if the procedure/package name was no specified in upper-case in the CREATE statement.
- In Oracle, the datatype was not displayed correctly for columns with the datatype NUMBER (no further details) in the DbExplorer
- When hitting ENTER at the end of a line with no with no whitespace the line was duplicated
- Scripts with line comments that contained a single quote were not processed correctly if the line comment did not start at the first column of the line.
- The SQL Formatter now works with multi-byte encoded characters
- The reported rows per table where incorrect when using WbCopy with multiple source tables.
- Using a mode with "update" for WbCopy with multiple tables did not work.
- The selected object type was not saved and restored correctly in the DbExplorer
- When using -createTarget=true with WbCopy, tables that used reserved words as column names could not be created
- Workspaces were saved under certain circumstances even if -nosettings was specified.
- When running WbExport with the -outputDir parameter and the directory did not exists and -createDir=true was not specified the command silently failed.
- Running in batch mode and using -displayResults=true was not working when statements were executed that had no results.
- Running WbReport with -includeViews=false did not work.
- Auto completion did not detect tables that were joined with the JOIN keyword (LEFT JOIN or INNER JOIN would work)
- Reference table navigation was broken.
- CREATE TABLE statements were not formatted correctly if they contained inlined PRIMARY KEY definitions.
- Auto completion for views was not working in Derby
Build 99 (2008-03-01)
Enhancements
- Files generated by WbExport are now always lowercase
- When running in batch mode, individual update counts can now be consolidated into a single message at the end (similar to the "Consolidate script log" in the GUI) using the new parameter -consolidateMessages=true
- When exporting data with WbExport to a spreadsheet format (OpenDocument, Excel) parameter -header now defaults to true
- WbExport can now create OpenDocument Spreadsheet files (ods) and Excel XML spreadsheets (xslx)
- Thanks to Alessandro an export to a native Excel file is now also available. In order to use the Excel export, it is necessary to copy the POI library (http://poi.apache.org) into the same directory where workbench.jar is located. The POI library has to have the name poi.jar
- The launcher executable has been renamed to SQLWorkbench.exe and the shell script has been renamed to sqlworkbench.sh
- WbExport can now optionally create the necessary output directory when using the new option -createDir=true
- When running in batch mode the current connection can be changed using the new command WbConnect. It accepts the same parameters to define a connection as the commandline. The command will be ignored when running the GUI.
Bug fixes
- The DbExplorer panel now remembers the focused component when switching tabs.
- When using "Save Data as" with a spreadsheet exports, writing the header row could not be turned on.
- Running SELECTs did not work for certain data types with the SQLite JDBC driver
- "Replace & Next" did not work if the replacement String contained characters that were relevant for regular expressions.
- Multi-line values were not correctly exported for XLSX and ODS spreadsheets.
- Date values were not written correctly with the new XSLX (XML) format.
- The option "Ignore Identity columns" was not saved from the options dialog.
- Auto completion did not work for CREATE OR REPLACE VIEW statements (but did for CREATE VIEW)
- "Match Bracket" would not scroll the bracket line into view if the matching bracket was not visible in the editor.
- When disabling "Open DbExplorer as tab", the DbExplorer window would fail to display the db information when shown for the second time
- The reload button did not work in the DbExplorer data panel, if "Autoload table row count" was disabled.
- Exporting LOBs into external ZIP files did not work if more than one table contained blob columns with a multi-table export.
- The parameter -logfile was no longer working if the specified logfile did not already exist.
Build 98 (2008-01-13)
Enhancements
- The Mac Bundle now comes with a universal binary (launcher) so it should run on PowerPC and Intel Macs. Thanks to Matt for providing me with the new binary
- Editor tabs can now be re-order using Drag & Drop.
- In batch mode warnings reported when connecting to the DBMS are now retrieved (and logged) immediately.
- Columns can now be dropped from within the DbExplorer's table definition.
- The text in the "What's new" window content can now be searched
- The data display in the DbExplorer now remembers the sort column when the data for a table is reloaded (but not when a different table is selected). This can be controlled through the options dialog
- The "Extended Properties" button in the connection dialog will now display a little checkmark if properties are defined for the currently selected profile
- Errors during retrieval of the data can now be ignored. The application will use NULL for these columns instead. This can be enabled by setting the property: workbench.db.ignore.readerror=true in workbench.settings.
- Columns can now be searched for from the table header popup If the column is found, the display is scrolled to display that column. The search is done on partial matches. The first column where the entered value is found somewhere in the column name is displayed.
- When searching in table data, all found values can now be highlighted.
- When saving a result set to a text file, the decimal character could not be defined (the default from the options panel was used)
- The current line in the editor can how be highlighted
- A background color to indicate null values in the result set can now be defined
- a new parameter for WbCopy and WbImport has been added: -transactionControl. It defaults to true. If set to false no commit or rollback will be sent to the DBMS after the import has finished. If savepoints are enabled they are still used during the import (or copy) process
- More detailed information about the DBMS and the driver is now available from the context menu of the connection information in the toolbar.
- When exporting a table with BLOB columns the filename to be used for the BLOB files can now be defined through a column of the result set using -filenameColumn=col_name. This will only make sense when exporting a table with exactly one BLOB column.
- WbImport and WbCopy now support the -preTableStatement and the -postTableStatement to define (a single) SQL statement to be execute before an import into a table starts and after inserting into that table is finished.
- WbImport (an WbCopy) will now ignore the -deleteTarget or -truncateTarget option if the selected mode is not INSERT (to prevent accidental deletion of records if e.g. update mode is selected)
- If no config directory is supplied and no settings file is found in either the current directory or the directory where the jar file is located, the settings are now written to the user's home directory (in the sub-directory .sqlworkbench). For a new installation this means that the configuration settings are no longer stored in the program's directory.
- The HTML version of the manual is now displayed using an external browser rather than using the built-in HTML display.
- Highlighting the control that has the focus in the DbExplorer can now be enabled by setting the property: workbench.gui.dbobjects.showfocus=true This is disabled by default. The default color for the focus border is yellow, the color can be configured using the property: workbench.gui.focusindicator.bordercolor with the RGB value (e.g. 128,128,128) for the desired color.
- For Oracle, REF CURSORS as out parameters in Procedures are now supported through WbCall, e.g: WbCall ref_cursor_example(42, ?);
- You can now assign a shortcut to the reload buttons in the DbExplorer. The shortcut will only work if the component does have the focus.
Bug fixes
- Null values for numeric columns could not be imported into an Access database.
- After moving editor-tabs the menus were no longer working correctly.
- Table definitions could not always retrieved when using Oracle (e.g. in the DbExplorer)
- Indexes with complex expressions (e.g. CASE ...) where not displayed correctly in the generated SQL for a table
- The label in the DbExplorer panels "REFERENCES" and "REFERENCED BY" were the wrong way round.
- Character literals spanning multiple lines were not colored correctly (especially if the start was not visible)
- Using WbVardef without a value did not delete the variable.
- When using WbCopy with a column mapping and the -createTarget parameter the target table could not be created due to an error in the generated SQL.
- When opening several new panels very quickly the application could lock.
- The application could not be started in batch mode without supplying a connection (either through the commandline or using a profile).
- When importing integer numbers using WbImport numbers with scientific notation could not be imported even if they were "real" integer values (e.g. 4.2E+1).
- Referencing the input file for WbImport using relative files paths was broken.
- When opening and closing multiple windows (File -> Open New Window) and using separate connections per tab, sometimes the wrong connections were closed.
- The path for a Look & Feel library was not saved, when it was edited manually (instead of using the file-open dialog)
- The new parameter -checkDependencies was not working correctly for large schemas with deeply nested foreign keys.
- Sequence definitions were not retrieved correctly for HSQLDB
- The "What's New" dialog was no longer displayed.
- The update check did not always find a new version
- When using an old JDBC driver that did not implement savepoints WbImport was not working even if the usage of savepoints was turned off
- Scripts for MySQL using non-standard line comments (with #) were not executed correctly.
- The toolbar button for "Append results" did not reflect the current setting of this option. Only the menu item in the SQL menu did.
Build 97 (2007-10-21)
Enhancements
- A new option has been added to define additional characters that are recognized as word characters e.g. when jumping word by word (using ctrl-left, ctrl-right) or selecting words in the editor using a doubleclick (Available under Tools -> Options -> Editor options)
- Added an option to reformat the view sourced when it's retrieved from the database. This is not enabled by default. To turn it on set the property: workbench.db.[dbid].source.view.doformat=true in workbench.settings.
- The global option "Enable dbms_output" has been removed. If you want to enable support for the DBMS_OUTPUT package, please use a pre-connect script in the connection profile.
- When creating a new physical connection for a tab using the new "Connect tab" feature, this connection can now be reset to the global connection. The tab's title is also displayed in a different color. The extra connection can now also be controlled through the popup menu for a tab
- When deleting rows from a result, the rows can now be deleted including all dependent rows using "Delete With Dependencies"
- The extended connection properties can now optionally be copied into the system properties when the connection is created. This can be used for JDBC drivers that only support System properties (such as H2)
- When not using "Separate Connection per tab", a new physical connection for the current tab can now be created using "File -> New Connection"
- The definition for JDBC drivers are now stored without a path separator in WbDrivers.xml in order to make the configuration file work on different platforms. To save the driver definitions in the new format, the "Manage Driver" dialog needs to be opened and closed once.
- The definition for Look And Feels (Tools -> Options) is now stored with a platform independent path separator in workbench.settings to make it easier to share the .settings file between platforms.
- When using "Check foreign keys" in the "Delete data" dialog, any dependent table that was not selected, can now optionally be added to the list.
- WbCopy can now be used with multiple tables, e.g. -sourceTable=* to copy all tables, or -sourceTable=table1,table2. Specific column or table mappings are not possible in that mode. All tables with from the the source are copied to all tables with the same name in the target DB. If copying multiple tables, it the responsibility of the user to specify them in the correct order (so that no foreign key constraint is violated)
- WbImport and WbCopy now support the -checkDependencies parameter. If set to true, SQL Workbench/J will analyze the foreign key dependencies of the tables and will import/copy them such that the parent tables are processed before and referencing child tables. The parameter is only checked if a multi-table mode is used in both commands ("WbCopy -sourceTable=*" or "WbImport -sourceDir=somedir".
- When using "Delete data" from within the DbExplorer, the list of tables can now be sorted according to their FK constraints.
- Empty column and table comments can now be included in the generated SQL source for a table. This can be configured in Tools -> Options -> SQL Generation
- The toolbar can now be hidden (View -> Toolbar). Thanks to Petr for the patch.
- Importing data into Oracle NCLOB columns is now possible.
- WbSchemaReport and WbSchemaDif can now also include sequences. To include sequences, use the new parameter -includeSequences=true (the default is false)
- WbCopy (DataPumper) and WbExport into a XML file did not work with Oracle when a NVARCHAR2 column was involved. This was due to the fact that the Oracle driver does not report the correct datatype for. A workaround has been added so that NVARCHAR2 (and NCHAR) columns are treated as java.sql.Types.VARCHAR instead of java.sql.Types.OTHER. This workaround is enabled by default and can be disabled by setting workbench.db.oracle.fixnvarchartype=false in workbench.settings
- Support for stored procedures with OUT parameters has been added for drivers that support the necessary calls. It has been tested with Oracle (11g driver), MySQL (5.0), SQL Server 2005 (Microsoft Driver) and IBM DB9 9 (Linux). The procedure needs to be called with the new keyword WbCall: WbCall myproc(?) All out parameters of the procedure will be displayed. Wehn setting the property: workbench.db.[dbid].procs.use.wbcall=true SQL Workbench/J will also apply the new logic when executing the CALL statement. As this might potentially lead to compatibility problems it is disabled by default.
- A background color for the connection info display can now be defined on a per profile basis (to e.g. identify "critical" connections)
- Added support for SQLite
- Code completion now recognizes an alias of the outer statement inside a sub-select.
- WbImport can now also import files with fixed columns (no delimiter) using the -columnWidths parameter
- The code-completion dropdown now allows multi-selection
- WbExport can now also write a format file for SQL Server's bcp utility. The file is created by using the new switch -formatFile=sqlserver The switch can also be used to write an SQL*Loader file using '-formatFile=oracle'. Creating both files is possible using '-formatFile=oracle,sqlserver' The old parameter '-writeOracleLoader=true' is still supported
- For DDL Statements a Savepoint can now be enabled so that DBMS which cannot continue the current transaction after a DDL error do not require a manual rollback (e.g. Postgres). This makes the option "Ignore DROP Errors" work for Postgres when not running in autocommit mode. This is controlled with the property workbench.db.[dbid].ddl.usesavepoint=true Running imports using the update/insert (or insert/update) mode will not work with Postgres as well. SQL Workbench/J can now use a savepoint to guard the first of the two statements so that the transaction can continue. This is controlled using workbench.db.[dbid].import.usesavepoint=true
Bug fixes
- The JDBC/ODBC bridge could no longer be loaded
- Tab names with non-ISO characters were not stored correctly in the workspace.
- WbSchemaDiff could not be run in batch mode.
- When changing a value in the result set from null to something else the column was not included in the generated update statements.
- It was not possible to edit a value in the result set that was null (e.g. setting a non-null value)
- When not specifying a database with the connection URL for MySQL and not using separate connections per tab, displaying data in the DbExplorer did not work (nor did the display of Enums)
- Displaying the table's rowcount in the DbExplorer did not work with old MS SQL drivers when autocommit was turned off
- Single quotes in comments were not escaped correctly in generated table source
- When using workbench.db.oracle.fixcharsemantics=true, NVARCHAR2 columns were also displayed with Byte/Char semantics.
- Retrieving sequences was broken for DB2
- Oracle packages were not correctly written into the output file of WbSchemaReport or WbSchemaDiff
- The display of the source of stored procedures was broken for SQL Server
- When reloading the list of indexes in the DbExplorer, all subsequent retrieval operations were blocked.
- Removed the automatic detection of available translations (because it slowed down startup too much). If a new translation is added, this now needs to be defined in workbench.properties
- The column label for the key column selection in the DataPumper was not readable with certain look & feels
- When running WbImport -header=false on an empty file, SQL Workbench/J reported an error because it could not read the header line.
- WbCopy when used with -createTable did no re-create NOT NULL constraints on the columns.
- Added some missing german localizations. The Version number was not displayed correctly as well, when German was selected as the UI language.
- Search did not work in the editor if no text was selected.
- The parameter -trimValues for WbImport was not documented
- Fixed some problems when printing tables that spread horizontally over more than one page.
- Fixed a race condition upon startup when the automatic update check was enabled.
- Fixed a race condition when closing the application which sometimes caused the application process to remain in memory.
- The {$clobfile} syntax could not be used with Apache Derby and source files with a multi-byte encoding (such as UTF-8)
Build 96 (2007-08-05)
Enhancements
- A German localization for the GUI is now available. The GUI language can be switched from within the Options Panel (General Options).
- A new option "Trim CHAR data" has been added to the connection profile. If this is enabled, values retrieved from columns with the CHAR datatype are trimmed (as the CHAR data is padded on most DBMS)
- A "keep alive" statement can now be defined in the "Connect Scripts" dialog, that will send a statement at defined intervals to the server to prevent the connection from beeing closed.
- A new option to sort pasted columns (for auto-completion) according to their position in the database has been added (Tools -> Options -> Editor)
- When importing files using mode=insert static values can now be specified for specific columns that are not part of the input file (using the switch -constantValues)
- The filenames generated for blob files are not converted to lowercase anymore. This means when using -lobIdCols to create the blob filenames from the column data, the original case will be preserved.
Bug fixes
- Improved the error handling when displaying table data in the DbExplorer
- No tables where shown when invoking code completion for an INSERT INTO statement was broken.
- "Create DDL Script" in the DbExplorer was not working for sequences.
- The selected case for table name when generating statements (from withing the options dialog) is now ignored if the driver reports that the server is case sensitive for object names.
- SQL Workbench/J would send a SHUTDOWN command to a Derby server when disconnection. This no only done for the embedded driver.
- Copying data as INSERT or UPDATE to the clipboard from a SELECT that contained more than row failed (and did not ask for the update table)
- -lineFilter did exclude the specified columns instead of including only the matching rows.
- Mixing function calls and constants with the -constantValues switch for WbImport did not work
- It was not possible to specify a blank as the delimiter when importing text files. This can now be done using -delimiter="' '"
- WbImport would fail with a NullPointerException if a column was listed twice in the -fileColumns argument.
- When importing text files with -quoteCharEscaping enabled, WbImport would fail if a column had a null value
- WbExport with a SELECT as the source was broken
- The source for tables that contained $ characters (or other characters that are used for regular expressions) could not be displayed.
- WbVardef trimmed spaces inside quoted values.
- When reformatting SELECT statements with a CASE that defines a column alias (CASE .. END AS someCol) no whitespace was put before the AS during reformatting.
- It was no longer possible to run SQL Workbench in batch mode without a profile (for e.g. a single WbCopy command where the profiles are specified as part of the WbCopy parameters)
Build 95 (2007-06-09)
Enhancements
- A special date and timestampformat "millis" can now be specified for WbImport (e.g. -timestampFormat=millis). This will treat the value as a numeric value representing the milliseconds since 1970-01-01 00:00:00 (and thus can be used to create a java.util.Date() object directly)
- When using -lobIdCols with WbExport the name of the export file is no longer part of the generated LOB filename if -compress=true is used.
- Ctrl-Shift-C (Comment Selection) now acts as a toggle. If this is invoked on a text that is not commented, the line comment character will be added. If the complete selection is already commented, then the comments will be removed. Ctrl-Shift-U (Uncomment Selection) works as before
- You can now select the elements that should be shown in the main window's title bar. The name of profile group and the current workspace can be enabled/disabled. The display of the current editor's filename has been moved from the "Editor" page in the options dialog to the new "Window Title" page.
- WbImport tries to figure the import type according to the file extension of the import file. Text import is assumed for the extensions txt or csv whereas XML import is assumed for the extension xml When importing compressed exports, the type parameter is still necesary.
- The handling of date/datetime keywords when entering data has been modified. You can now specify keywords for the three different JDBC datatypes (date, timestamp, time) and the value that is created depends on the type of the keyword (keywords for date will not include the time portion, keywords for time will not incude a date part). The detection is independent of the type of the column (i.e. you can enter current_timestamp in a date column to get the time part as well for e.g. Oracle DATE columns). The differen keywords can be defined in workbench.settings. The default entries are: workbench.db.keyword.current_date=current_date,today workbench.db.keyword.current_time=current_time,now workbench.db.keyword.current_timestamp=current_timestamp,sysdate,systimestamp So when you enter current_date in a date (or timestamp) column the current date without the time (i.e. the time will be 00:00) part will be sent to the DBMS. When you enter e.g. sysdate in a date column the value sent to the DBMS will include the time part.
- The literals that are accepted as true/false for converting boolean values can now be defined using two new parameters for the WbImport command: -literalsFalse -literalsTrue this also affects the parsing of values for the -booleanToNumber=true mode. The default literals for the number conversion has been limited to true/false. Literals that are not "known" (either through the default or by specifying them using the -literalsXXX switch) are now always rejected (before they were silently converted to false)
- The automatic conversion of the values true/false to numeric values 1/0 can now be disabled for WbImport using the parameter -booleanToNumber=false (the default is true)
- The default shortcut for auto-completion has been changed to Ctrl-Space
- WbImport and WbExport can now control how quote characters that are contained in the data are treated. The new argument -quoteCharEscaping defines the expected input format or the format to be written. Possible values are none,duplicate or escape.
- Using mode=insert,update is no possible with PostgreSQL. Due to PG's error handling this required a savepoint around the INSERT statement that could be rolled back. Doing the INSERT in a sub-transaction with savepoints can be enabled for other DBMS using workbench.db.[dbid].import.usesavepoint=true
- The application can now automatically check for updates
- The log level can now be changed from within the options dialog (no need to restart SQL Workbench)
- When entering values in date (timestamp) columns the keywords now, sysdate, current_date and current_timestamp are replaced with the current date/time. Note that this will be the local timezone of the machine where SQL Workbench is running, not the time of the DBMS Server
- Under MacOS the Apple+Q shortcut is now working to exit the application (as well as the about and preferences keys)
- Re-designed the options dialog
- When using "Put SELECT into" from within the DbExplorer the statement can now be appended to the selected editor by holding down the CTRL-Key while selecting the menu item.
- If no encoding is supplied WbExport now uses UTF-8 as the encoding for XML exports and the system default encoding for text exports. It also reports the default encoding in the help when no parameter is supplied. The default encoding for text exports can be changed using the property workbench.file.data.encoding
Bug fixes
- When entering values in the result set that could not be converted to the correct data type, no error message was shown.
- Auto-completion for tables from other schemas was broken
- The update count for DELETE and UPDATE statements was not shown properly.
- -decode now correctly decodes a \\ to a (single) \
- "Ignore Drop Errors" was not working any longer (that included the commandline switch for running in batch mode)
- The automatic update check did not always work.
- The -sourceTable switch from WbExport did not preserve quotes so that exports with case-sensitive table names could only be done using a SELECT after the WbExport.
- Not all error messages (e.g. missing parameters for WbExport) were reported in the log file during batch execution.
- When opening a file in a SQL tab that contained a modified file, No and Cancel would both do the same when beeing asked to save or discard the changes.
- Numeric values that were returned as BigDecimal by the JDBC Driver were not displayed according to the chosen max. number of digits (in the options dialog)
- The integration with Mac OS is now working properly.
- Fixed the processing of "batches" sent to SQL Server. If a multi-statement SQL is sent to SQL Server that also returned result sets, the result was not always shown.
- WbImport with -decode=true was not always working properly
- No error messages was shown on the console if the specified driver class could not be loaded when running SQL Workbench/J in batch mode.
- Improved the performance when importing compressed input files with a large number of associated LOB files (in an extra archive).
- When importing a text file without a header definition and the target table did not exist no proper error message was shown.
- When using -truncateTable=true or -deleteTarget=true for WbImport an error during truncate/delete would not be reported.
- Some keystrokes (e.g. Alt-F4) started editing mode in the result table that should not start editing.
- When only importing part of an import file (using -startRow and -endRow) the import would fail if data in the ignored rows failed validation.
- Conversion errors where not reported correctly when importing XML files with WbImport
- SQL Workbench does not try to set a default font for GUI elements any more. A previously selected standard font can be reset through the options panel.
- If the text in the editor ended with a @ command executing the SQL command at the cursor position did not work
- DbExplorer now shows the source for indexes on views (e.g. MATERIALIZED VIEWS) as well. The index definitions are also included by WbReport and WbSchemaDiff
- The type of an index was not displayed correctly with MySQL
- Not all comparators were selectable in the filter dialog
- When using the "Drop.." dialog from the DbExplorer SQL Workbench/J was offering the CASCADE option for MySQL even though it is not supported by MySQL.
- The tooltip for columns with NULL value displayed the value of the previous column
- The history for the quickfilter in the DbExplorer's Object list was not saved when the DbExplorer was opened as a separate window.
- When switching tabs while the completion popup was open and then returning to the original tab, keystrokes would not be inserted into the editor.
- Workaround for a bug in older Postgres drivers where getMoreResults() would throw a NPE if the statement did not produce a result set.
- WbImport with XML files did not work with columns that contained special characters
- SQL Workbench would not load with the Substance look and feel.
- The search dialog did not automatically use the currently selected text.
- The property workbench.db.oracle.syntax.functions was growing with each start of the application.
- The quick filter for the new trigger list was not working
Build 94 (2007-03-31)
Enhancements
- When doing single-table imports with WbImport VARCHAR or CHAR columns that exceed a certain limit in the input file can now be truncated using the -maxLength parameter. The format is -maxLength='column1=size1,column2=size2'
- The DbExplorer now has an additional tab that lists all triggers of the selected catalog/schema. The new panel can be disabled in the Options dialog (DbExplorer tab)
- WbImport can now write a file with records that could not be imported if run with continueOnError=true. The file is specified with -badFile=filename. If the filenanme indicates a directory, the actual file will be constructed by using the directory and the target table's name (needed for multi-table exports).
- If a result set does not include all pk columns from the update table, a warning is show when trying to save changes for the result.
- Individual result tabs (when using "Append new results") can now be closed (Data- > Close result)
- The tooltip for the connection info now displays the driver version as well.
- Data can now be changed in the result set by using search & replace (Data -> Replace In Data)
- The DbExplorer now displays the source for the underlying table as well, when displaying the source for a synonym
- WbExport now can optionally create ANSI or JDBC style date and timestamp literals when exporting to SQL statements. This is selected with the new switch -sqlDateLiterals The default literal type for copying SQL statements to the clipboard can be defined in the options dialog. Additional literal types can be defined through workbench.settings by supplying the approriate SimpleDateFormat patterns
- When finding primary key columns to update the result set synonyms are now resolved as well.
- A new command to prompt for a confirmation has been added. WbConfirm will display the provided message and will allow to stop the current execution or continue. This will only be evaluated in GUI mode (e.g. to prevent the accidental execution of "dangerous" scripts)
Bug fixes
- When statements were executed in nested WbIncludes not all error messages were reported to the console or the GUI (they did show up in the log file only).
- The filemode for the Java launcher in the Mac package was not set correctly so that the application could not be executed without changes. To support the correct file attributes the Mac Bundle is now distributed as a tgz (tar/gzip) archive which presevers the file attributes.
- Using a SYNONYM as the source for WbCopy did not work.
- column constraints like (COL_1 IS NOT NULL OR COL_2 IS NOT NULL) were not displayed in the DbExplorer for Oracle
- For synonyms pointing to views the wrong source was created
- If WbImport was used with -decode=true and a line contained an invalid escape sequence (e.g. a single backslash) the import would terminate with the wrong error message.
- If a SELECT statement only contained an ORDER BY clause but no WHERE clause, auto completion did not show the columns for the table
- When using search & replace in the result, the wrong column was highlighted after the first item was replaced.
- The "internal" handling for the line ending was changed (back) to always use the Unix format. SQL Statements can still be sent to the DBMS with DOS line endings, but the statements will now be converted before they are sent (rather than storing them with DOS line ending right away), which might have a performance impact when running large scripts.
- Sometimes the application would ask to save changed profiles even if the profiles weren't changed.
- Made quoting of schema names with digits work without changing the settings (objects with a digit at the first place are now automatically quotes)
- Quoting only the schema name for WbImport did not work (e.g. -table='"123".table'
- If the semicolon for the last statement in the editor was placed on a single line, and the cursor was located left of the semicolon in the same line, Ctrl-Enter would not work.
- For Oracle, columns with 'TIMESTAMP WITH [LOCAL] TIMEZONE' data type are not retrieved using getTimestamp() instead of getObject() to be able to properly display the data for those columns.
- To be able to use columns with the data type TIMESTAMP WITH LOCAL TIMEZONE, the current timezone needs to be set for the session. The ALTER SESSION SET TIME_ZONE is now captured and translated into the approriate Java call on the Oracle driver as described in http://download-uk.oracle.com/docs/cd/B19306_01/java.102/b14355/oraint.htm#sthref175
- Quoted table names could not be passed to the WbImport command (e.g. -table='"MYTABLE"') which is necessary for case-sensitive servers
- Warnings that are reported by the JDBC driver after switching the current database are now ignored and do not set the "warning" state for the executed command.
- When running a script in batch mode that ended with a comment the process was terminated with an error status.
- WbImport did not always close the input files correctly.
- When exporting data to SQL scripts, timestamp columns were not formatted correctly
- Code completion was not working for (Oracle) synonyms
- The DbExplorer failed to retrieve the table definition and table data for MS SQL Server if the server was defined with a case sensitive collation.
- The table reference navigation was not always reset in the DbExplorer data tab and displayed the referenced tables from a previous table
Build 93 (2007-02-11)
Enhancements
- When displaying a BLOB content as text, the content can now be modified. The character set conversion will be done using the selected encoding from the info dialog (both directions)
- WbReport and WbSchemaDiff can now optionally include the table grants (new parameter -includeTableGrants)
- The parameter -includeProcs for WbSchemaDiff has been renamed to -includeProcedures to be consistent with WbReport
- The deferrable attribute of a FK reference is now shown in the DbExplorer and the generated SQL source.
- Workbench specific commands are now supported by the auto completion
- The filter in the table list of the DbExplorer now accepts regular expressions. Thanks to Petr for the patch
- The (plain) editor used to edit column data from within the result display now supports Search & Replace.
- A new setting to close the application if the first connect is cancelled is available workbench.gui.cancel.firstconnect.exit If this is set to true, the application is closed if the connection dialog that is displayed during startup is cancelled
- For Synonyms, the DbExplorer now displays the foreign keys, indexes and triggers of the underlying table.
Bug fixes
- Copying BLOB columns was broken for WbCopy and DataPumper
- The option "Single line" for the default alternate delimiter (Tool -> Options -> Editor) was not saved.
- The window position was not restored properly if the window was moved to the uper left corner.
- When importing a text file that references blob files, absolute filenames for the blob files did not work.
- WbSchemaDiff did not include the necessary entries to drop views from the target database if includeViews was set to true
- The generated report for WbSchemaDiff did not contain tables that only differed in the index definition.
- Code completion for the WHERE part of a DELETE statement was not working.
- A SQL panel could be moved between two DbExplorer panels but when reloading this workspace the SQL panel would be dropped.
- When running WbExport using -clobAsFile=true and -writeOracleLoader=true the generated SQL*Loader file did not contain the necessary syntax to load the CLOB data from the generated external files.
- External tools where a parameter was needed for the executable (e.g. someapp.exe /h) could not be used from within the blob display window.
- Triggers and foreign keys were not correctly displayed for SQL Server with the jTDS driver.
- When an invalid format for -timestampFormat or -dateFormat was specified for WbExport, no warning was displayed.
- The manual listed incorrectly the parameter -dateTimeFormat instead of -timestampFormat
- The -emptyStringIsNull switch for WbImport was broken.
- The -append switch for WbExport was broken.
- WbExport -sourcetable=something did not work if "something" was not a table (e.g. a Synonym)
- When the current schema was changed in Oracle using ALTER SESSION the DbExplorer (when using the same connection) failed to retrieve table data for the old schema.
- Reference navigation was broken outside the DbExplorer
- Errors when committing changes in the DbExplorer were not shown to the user.
- The DataPumper did not use the selected encoding when importing a text or XML file.
- Escaping of the delimiter has been changed for the WbExport or the "Save Data as" commands. The following rules are now applied: if no character escaping is selected (-escapeText parameter) then neither the quote character nor the delimiter are ever escaped. If escaping is enabled, then the quote character will be escaped inside a quoted value and the delimiter will be escaped inside a non-quoted value regardless of the chosen escape range.
Build 92 (2007-01-06)
Enhancements
- When searching for referencing/referenced tables, synonyms are now detected.
- Referenced/referencing rows can now be displayed into a new SQL panel from within a SQL panel by holding down the Ctrl-Key when selecting the menu item of the popup menu.
- From within a result display, related records based on foreign key constrains can now be retrieved for the selected rows
- When displaying (SQL)Exceptions the whole exception chain is now displayed (if available)
- New results can now be added to the already displayed result (New Menu item SQL -> Append new results)
- Large text fields are now displayed in multi-line mode (to be able to see all lines "Allow Row Height Resizing" must be enabled. For performace reasons this mode is only enabled for character columns that can hold more than 500 characters. This threshold can be configured using the property: workbench.gui.display.multilinethreshold
- The alternate delimiter can now be defined for each profile. If one is defined in the profile, this will overwrite the globally defined alternate delimiter. Additionally an alternate delimiter can now be defined as "single line", which means that it has to occur as the only text on a line in order to be recognized.
- Delimiter and alternate Delimiter can now be specified in batch mode as well. The parameter -altDelimiter will only have an effect if a profile-less connection is used (basically defining the alternate delimiter for the temporary profile) The argument -delimiter overrides the default delimiter and will turn off the usage of an alternate delimiter. This can be used if the scripts are not processed in memory but still use a non-standard delimiter (Similar to the -delimiter argument of the WbInclude command). To define a single line delimiter append the ;nl to the delimiter definition. E.g. -delimter=/;nl will define the forward slash as the delimiter but only if it's the only character in a line. -delimiter=GO;nl will define a MS SQL Server compatible delimiter. The additional automatic detection of the GO delimiter has been removed. If you use GO as the delimiter, please change your profiles to use that as the delimiter.
- When running with feedback disabled (wbfeedback off) a message will now be printed if a statement finished with a warning
Bug fixes
- When saving changes from within the result set, errors during COMMIT were not reported to the user (e.g. with deferred constraints)
- The source of a table was not displayed in the DbExplorer if a comment contained characters that are valid regular expressions.
- Some minor workarounds to make SQL Workbench/J work with tinySQL
- When using a table alias with the AS keyword, code completion did not work properly
- The DbExplorer was not displayed when running on Debian Linux (Possibly with other Look & Feels as well)
- The shortcuts for "Move tab left" and "Move tab right" could not be configured
- Large integer numbers where not displayed correctly
- "Create DDL Script" in the DbExplorer did not create the DDL for materialized views in Oracle
- Code completion was not working properly if the cursor was at the end of the editor script
- Fixed some problems with external files when switching line endings
- WbImport reported the wrong line number, when an error occurred during converting values from a text file.
- Text values with embedded newlines were not displayed correctly in the edit window.
- When importing an XML file that contains a column that does exist in the target table, no error was reported (but the import failed nevertheless)
- When running DML Statements (INSERT, DELETE, ...) with the Informix JDBC driver, it would throw an exception when retrieving the update count.
Build 91 (2006-11-27)
Enhancements
- Added support for H2 Database Engine
- The type of an index (e.g. BITMAP, HASH) is now shown in the DbExplorer.
- When running SQL Workbench in batch mode, you can now omit the -profile parameter. This obviously only makes sense if you run only WbCopy commands that specify source and target connections.
- WbExport now can ignore missing tables (when using -sourcetable=table1,table2,table3 if -continueOnError=true
- The data in the result set can now quickly be filtered by the value(s) of the currently selected column(s)
- The data can now be sorted by more then one column. To define additional sort columns, hold down the Ctrl key while clicking on the column header. To remove a secondary column hold down the Shift key and click on the column header.
- WbSchemaDiff can now optionally include stored procedure
- A new setting to control the max. text size to be put into the SQL history is now available: workbench.sql.history.maxtextlength The default is set to 10MB
- A new option has been added to exclude external files from beeing stored in the SQL history (Tools -> Options -> Editor)
- WbExport can now also write CLOB contents into external files for XML and Text export. Text exports need to be imported using WbImport with the new parameter -clobIsFilename. In the XML format the external file is automatically recognized.
Bug fixes
- Filters were not working with Date columns
- The hash sign (#) can now also be used as an alternate delimiter if the current connection is not a MySQL connection
- When WbVarDef was used with a SQL query and the query resulted in an error, the error was not displayed.
- Shortcuts without a modifier (e.g. F1) could not be customized
- More fixes to the error handling during batch processing
- WbImport did not give a proper error message when a non-existing column was defined using the -importColumns parameter
- Primary key columns were not detected correctly when the column name was a (SQL92) reserved word which led to incorred WHERE conditions for updating the result set.
- When creating triggers for Oracle, error messages were not displayed automatically
- Fixed some problems in the DataPumper and code-completion when using table or column names that need quoting (e.g. with spaces)
- The DataPumper now allows the setting of the batch size instead of simply enabling it
- When nesting multiple WbInclude commands, the value for the -continueOnError parameter was not correctly evaluated for all nesting levels
- The default value for -continueOnError for the WbInclude command is now false, as stated in the documentation
- Oracle style includes (@test.sql) were not working with comments inside scripts.
- Closing the autocompletion popup when the quicksearch is cancelled did not work (Property in Tools -> Optioins -> Editor)
- Copy as SQL was broken if edit mode was not started
- Tables with mixed-case names were not handled correctly in the DbExplorer
- Auto-completion for table alias was not working correctly if there was no space before the alias (e.g. a.col=b.col instead of (a.col = b.col)
- The indicator marking a running statement in the main window was cleared when switching between two panels where one was running a statement and the other panel was not.
- The table list in the DropDown of the DataPumper was sorted by table type rather than table name
- When creating the target table using WbCopy or DataPumper, the original column order is now maintained
- Improved and fixed up the error handling and reporting during batch execution
- When editing a new row in the result set and opening the edit window, the current value of the column was not displayed
- Fixed some repainting problems in the editor
Build 90 (2006-10-11)
Enhancements
- The connection profile has been enhanced to include SQL Statements that can be executed after a connection has been established and before a connection is about to be closed.
- The case (upper, lower, as is) for table names in generated SQL statements can now be set independently from the paste case in the editor. The new setting is available at Tools->Options->SQL formatting. It defaults to the "Paste case" value for the editor
- Data can now be imported from the Clipboard into the current result set.
- Exporting data as SQL statements now writes the SQL Workbench/J syntax for blob files and extracts the blobs as well (like XML and Text export)
- You can now import only parts of a file by defining the startrow and the endrow from the input file using the parameters -startrow and -endrow for WbImport
- A new parameter to control commit during batch import has been added: -commitBatch which is only evaluated when -batchSize is set to a value greater than one. If this is set to true, then after sending a batch to the server commit() is called. This is slightly different to using -commitEvery with the value of the batchSize parameter. The latter one will add a COMMIT statement to the batch queue, rather than calling the JDBC commit() method, because some drivers do not allow a COMMIT statement inside the batch queue.
- The last saved Filter definition files are now available as a dropdown next to the filter icon in the toolbar. The maximum number of entries that are displayed in the list can be set with the property workbench.gui.filter.mru.maxsize in workbench.settings The default is 15
- Removed the "Disable automatic update table check" from the connection profile. The PK information for the update table is now retrieved when needed.
- Connection Profiles can no be moved/copied between profile groups using drag and drop
- You can now specify an alternate method of creating filenames for exported BLOB data, using the -blobidcols switch. The filename for the blob data will then be created by using the base name of the export file, the column name of the BLOB column and the value(s) of the supplied id column(s)
- The current cursor location of the SQL editor is now displayed in the status bar
- For Oracle VARCHAR2 columns with byte or char semantics are now displayed with the approriate modifier in the DbExplorer
- The location of the tabs inside the DbExplorer can now be customized with the property: workbench.gui.dbobjects.tabletabs= Valid values are: bottom, left, right, top
- For WbImport and WbCopy the -usebatch=true parameter is no longer necessary. When passing -batchsize with a value greater than 1 (one) batchmode is automatically enabled.
- New SQL tabs can now be inserted after the current tab
Bug fixes
- Profiles could not be moved using drag & drop into an empty group
- Quoted table names were not kept during update statement generation for the result set
- Fixed some bugs due to the new checking of the update table
- Fixed some missing labels.
- When selecting procedures/functions inside an Oracle package the editor would no longer jump to the selected procedure.
- Fixed incorrect display of triggers for Apache Derby
- WbCopy did not report an error if any of the profiles or tables were not found (only a NullPointerException)
- When switching the font in the editor, the display was not always correct until the application was restarted.
- Results where not displayed correctly if a large font was selected for the data display
- If no workbench.settings was present in the application directory and the directory contained spaces, the application would not save its settings or profiles.
- "Generate DDL Script" in the DbExplorer was not working for non-table objects.
Build 89 (2006-09-08)
Enhancements
- WbImport will silently convert true/false literals for integer columns into the values 1/0.
- When generating statements internally, the auto completion paste case setting is also applied to table and column names
- The encoding of the scripts in batch mode can now be specified on the commandline using the -encoding switch.
- The PDF manual can now be displayed from inside the application. for this to work, the path to the PDF reader executable has to be defined in Tools -> Options and SQLWorkbench-Manual.pdf needs to be available in the directory where workbench.jar is located.
- Tables can now be filter out using a regular expression in the DbExplorer. The default setting will remove tables from Oracle 10g's recylce bin. This is controlled by the property workbench.db.[dbid].exclude.tables=<regex>
- Improved the performance of the editor on large files (for loading and for scrolling)
- Column widths can now be optimized automatically after data is retrieved. A new option is available in Tools->Options->Data editing. The column header can also be included in that calculation by default.
- When starting without a profile, the parameter -rollbackOnDisconnect (with the value true/false) is now supported. If this is set to true, then SQL Workbench will send a rollback to the DBMS before closing the connection. This is already available in the (GUI) connection profile.
- When creating a DDL script from within the DbExplorer, foreign key constraints are now put at the end of the script.
- Profile groups can now be deleted directly using the context menu, even if they still contain profiles.
- Statements can be cleaned from newlines before sending them to the server by using the property workbench.db.[dbid].removenewlines=true Where [dbid] should be replaced with the DBID shown in the log file
- Every SQL Statement sent from within the editor, can now be logged by setting the property: workbench.sql.execution.log=true The statements will be logged with INFO level.
- The character sequence for a new line that is used by the editor internally and for saving files can now be configured in the Options dialog
- Added support for DB2 Triggers, Alias, Stored Procedures Sequences and materialized query tables in the DbExplorer
- Individual cells can now be selected in a result set by holding down the Alt-Key while selecting rows/columns. When using "Copy selected" on such a selection, only the selected columns will be copied. Note that this will produce incorrect results when copying SQL statements and no primary key column is part of the selection. The modifier for rectangular selections in the editor has been switched to the Alt key as well, to be consistent.
- When specifying a connection profile through parameters (Commandline, WbCopy, WbSchemaDiff) the profile group can now also be specified. Please refer to the manual for details on the new parameters
- The statement history can now be deleted by using SQL -> Clear history
- WbImport with -type=text can now handle records spanning multiple lines (which need to be enclosed with the quote character) This support can be enabled with the parameter -multiline=true
- A new option to use alternating colors for table rows is available in the Options dialog
- The WbImport command can now handle the compressed archives created with WbImport -compress=true
- Specifying a full connection using the -url -driver, ... parameters is now also possible when not running in batch mode, so a connection can be established without an existing profile for GUI mode. A new commandline parameter -workspace is also available to a workspace file to be used. (The file name can contain the %ConfigDir% placeholder)
- Stored procedures for Sybase Adaptive Server Enterprise are now displayed correctly.
- If neither the -header nor the -filecolumns parameter are specified for the WbImport command, SQL Workbench/J assumes the file matches the table definition.
- All settings that are available in workbench.settings can now be overwritten on the commandline using -Dworkbench.settings...=
- Writing the settings when closing the application can now be prevented by passing the -nosettings parameter to the application
- The connection profiles can now be grouped. The list on the left side of the connection dialog is now displayed as a Tree.
- The table lists in the DataPumper can now be refreshed without re-connecting
- BLOB columns can now be set to NULL from within the BLOB Dialog
- Text export and import can now handle BLOB data as well. The text file will contain the file name of the external file to which the blob was written. WbImport will automatically assume the value of blob columns are filenames (this can be turned off with the parameter -blobisfilename=false when running WbImport) When writing Oracle SQL*Loader control files (-writeoracleloader=true for WbExport), the control file will include the necessary definitions to import the blob from the external file.
- WbSelectBlob now processes the full result set (and not only the first row. Subsequent files will be name as the base file with _(n) appended, where (n) is the row number as retrieved from the DBMS server.
Bug fixes
- -importcolumn parameter was not working for WbImport
- Fixed repainting problems in editor
- The DbExplorer could not be closed any longer, if only on SQL Tab was open
- Fixed the progress display in the console for Linux
- The automatic retrieval of key columns for the target table was not working for the WbCopy command.
- WbImport always used a quote character ("), even if no quote character was specified (so it was not possible to run an import without any tests on quotes)
- Re-introduced fix to prevent sending another SQL Statement while a WbExport is running
- After reformatting the SQL Ctrl-Z (Undo) needed to be pressed twice in order to undo the reformatting.
- If the internal line ending was set to something else then Unix loading external files would not work properly
- When copying a profile from one group to another using the context menu, the new profile was not saved.
- When using SQL Workbench in batch mode without a WbDrivers.xml, connections through the ODBC bridge did not work
- When switching from one Workspace with a file in a tab to another workspace with not file in the same tab location, the file was not unloaded.
- WbImport did not use the -encoding parameter
- "Save Workspace as..." was not working when no extension was specified
- When enabling DBMS_OUTPUT (on Oracle) LONG or LONG RAW columns could not be retrieved as well. DbExplorer and DataPumper now disable DBMS_OUTPUT as soon as they connect. For regular SELECTs in the editor tabs, this has to be done manually by the user by either globally disabling DBMS_OUTPUT in the options dialog or through DISABLEOUT before running a query on a table with a LONG column.
- The DbExplorer was not working as a standalone application any longer (using the -dbexplorer switch or DbExplorer.exe)
- For non-character columns, WbImport now treats empty values or values that only consist of whitespace as null values (instead of throwing an error)
- When saving a result set to a file "Save Data as", nothing was written, if no file extension was specified.
- With Oracle CLOBs where always written with CDATA tags when using XML Export even if -usecdata was set to false
- With Firebird, SELECT statements were broken
Build 88 (2006-07-07)
Enhancements
- The help window invoked from the main window is now non-modal and can be put into the background.
- CREATE INDEX is now supported for code-completion
- Before saving a workspace the current file will be renamed to *.bck. If workspace backups are disabled, then the backup file will be deleted if the saving was successful.
- BLOBs can now also be opened with external tools. The external tools can be defined in the Options dialog (Tools -> Options -> External Tools)
- WbSchemaDiff now supports the -useJdbcTypes parameter which will compare the JDBC data types of the columns not the DBMS specific data types to make a comparison of schemas across different DBMS a bit more general.
- When displaying the source for a Stored Procedure, View or Table in the DbExplorer the source can now be opened in an editor tab.
- Made processing of result sets more flexible when running multiple SQL statements that are not separated with a semicolon (e.g. with SQL Server accepts this non-standard syntax)
- "Create empty INSERT" in the DbExplorer now uses the formatting settings for internally generated statements.
- "Create empty INSERT" can now be configured to use ? for the values to help make creating PreparedStatements in Java code. This is controlled through the property workbench.sql.generate.defaultinsert.prepared=true in workbench.settings
Bug fixes
- Switching between result sets in the same SQL panel would discard any changes in done in the result set
- Moving SQL tabs around was not always working properly (wrong statements were executed)
- The display for start and end row was not always correct.
- Sub-selects in the WHERE clause where not formatted correctly if the sub-selected used = instead of IN
- When modifying a newly inserted row in the result that has already been saved, modified columns were not always detected correctly
- Statements using MS SQL Server's outer join syntax (using *=) were not reformatted correctly.
- Fixed some problems when re-formatting subselects
- The USE command was broken with SQL Server when using quoted DB Names (e.g. [otherdb] or "otherdb") The usage of the setCatalog() function can be disabled using the property workbench.db.[dbid].usesetcatalog=false
- When a file is loaded in the editor, the file's directory is used as the base directory for subsequent includes when running the Script. Thanks to Christian d'Heureuse for this fix.
- Prompting from within scripts that are called using wbinclude now works properly (when running in GUI mode)
- When using a TAB character to separate the table name from the table alias, auto-completion did not recognize the table
- When a column is directky prefixed with a comma, auto-completion was not working properly.
- When using -referenceTables and -targetTables at the same time WbSchemaDiff did not report differences properly.
- When running in batch mode, WbInclude (and other commands) were not working relativ to their script's directory but were always using the current directory.
- Cancelling a SELECT statement during processing of the result was broken.
- Saving variables from within the WbVarList result was broken
- When the source table was not found for the WbCopy command it was incorrectly reported as "Target table not found"
- When switching result set tabs (inside a single panel) while editing a column, the new result tab(s) got corrupted.
- When selecting from a different database with SQL Server the generated UPDATE statements did not include the database
Build 87 (2006-05-08)
Bug fixes
- Some Workbench specific statements were broken when entered in lowercase
Build 85 (2006-05-07)
Enhancements
- Moved the "Remember DbExplorer Schema" option from the global options to the profile options.
- Additional Look & Feels can now be defined through the Options dialog. Switching the Look & Feel has been moved to the options dialog as well.
- If a macro definition contains the string ${selection}$ it will be replaced with the selected text in the current editor. If the definition contains the string ${current_statement}$ it will be replaced with the sql statement at the cursor location. The replacement keys are case-sensitiv.
- BLOB columns are now displayed with a button that will open a dialog to either save the blob or display it as text or an image. Files can also be "uploaded" from within that dialog.
- The DbExplorer now includes a dropdown for the database when connected to SQL Server (or any DBMS that supports catalogs)
- When undoing in the editor, the cursor now moves to the position where the undo actually happened
- Added more properties to the options dialog
- When using the auto completion in a GROUP BY the columns from the select list are now displayed
- Support for multiple result sets. This includes a change in the display of the results. The result tab in the lower pane will not be displayed unless the last SQL statement actually did produce a result set
- Incremental search ("Search as you type") in auto completion
- The connection profile has a new attribute "Remove comments" which is disabled by default. If enbled, any comments will be removed from the SQL statement before sending it to the server
- "Expand Editor" and "Expand Result" now act as a toggle. The first time they are invoked they will expand the editor (or the result area) the second time they will undo the expand. The "Undo Expand" will undo the last expand.
- Reworked the Options dialog
Bug fixes
- Update counts were sometimes reported twice
- When trying to update a result based on a SELECT statement with multiple tables, the tables were not listed correctly in the dialog
- ALTER TABLE ... DROP CONSTRAINT was not considered for the "Ignore DROP errors" option. (Thanks, Janek for this)
- Statements immediately following a combination of multi-line and single line statements were not always detected correctly and thus not considered e.g. for the "Ignore DROP errors" option
- The result of stored procedures that returned ResultSets and updateCounts where not processed correctly
- The available tables were not recognized properly if more then one JOIN was used.
- The application was not starting any more if no -configdir was passed
- Detection of table alias for code completion was not working properly any more
- WbVarDef was not working properly if a space was put around the equal sign (e.g. WbVarDef function_code = 1)
- Time columns were not displayed correctly.
- The USE command did not work with MySQL. This is actually a "feature" of the MySQL driver which does not allow to change the database with the USE command, only through Connection.setCatalog() which is now used internally by when a "USE dbname" is executed
- Stored procedures where not displayed for SQL Server when using multiple databases.
- DESC dbname.owner.tablename was not working for SQL Server
- Single line commands (such as SET SPOOL OFF) without a delimiter are now only detected when connected with an Oracle database. To (re-)enable this feature for other database systems add the DBID for your DBMS to the setting workbench.db.checksinglelinecmd
- Code completion was not working properly for statements using the "new" JOIN syntax
- When using "Autojump to next statement" the result tab was not selected when executing the last statement in the editor (using "Execute Current").
- -commitevery was not working for WbImport if -usebatch was used (Thanks to Pascal for reporting this and also supplying the fix)
- Code completion inside a subselect was not working properly if a statement contained more then one subselect
- When using "Save Data as" the options from the dialog where not correctly applied to the export file
- CLOB columns where not exported correctly for XML exports
- The Options dialog would not open on a new installation
- Oracle CLOB columns where not always copied correctly in the DataPumper
- When an error ocurred during copying, the DataPumper would not always show the error.
- The SQL Formatter inserted a space between two single quotes inside a character literal
- When generating SQL statements (INSERT, UPDATE,...) date values where not formatted correctly for Oracle
- Not all settings were saved in the new options dialog
Build 85 (2006-02-20)
Enhancements
- The automatic scroll area of the editor ("electric scroll") can now be configured with the property workbench.editor.electricscroll and defines the number of lines where the electric scrolling should be enabled. The current default is 3. This property can also be set through the options dialog ("Editor" tab) The color used to highlight statements that failed can now be configured with the setting workbench.editor.color.error
Bug fixes
- Code completion was not always working with subselects
- WbSchemaDiff was not working any longer (due to the rename from WbDiff
- When no profile was selected in the connect dialog, the OK button could still be clicked (without result). Additionally if no profile was selected, profile information could still be entered but would be lost when switching the profile
Build 84 (2006-02-10)
Enhancements
- DbExplorers opened as a tab will store the selected schema in the current workspace. This behavior can be disabled (old way) by setting workbench.dbexplorer.rememberSchema=false in workbench.settings
- WbDiff has been renamed to WbSchemaDiff
- For Oracle the DESC command now also works for DBLinks (e.g. desc table@dblink)
- The path to the driver jar files can now contain the placeholder %LibDir%. The libdir can be specified in workbench.settings or using the new command line -libdir
- WbImport now supports creating the target table if the import file is an XML file (-createtarget=true)
- When displaying source for Oracle packaged functions, the editor not scrolls to the function.
- The column header's tooltip now contains the datatype
- Import progress (and other progress messages from the statusbar) can now be enabled in the commandline (batch execution) with the parameter -showprogress=true As Java's support for the console is very limited this might not work properly in all situations
- The way empty strings are treated and whether columns containing NULL values are included in INSERT statements can now be controlled in the connection profile
- Added the ability to define primary key columns for tables and views. This can either be done using the new "WbDefinPk" command, or by defining a mapping file that contains the definitions. The name of the mapping file (which has to be a standard Java properties file with table=col1,col2 entries) can be defined in workbench.settings using workbench.pkmapping.file=filename The new commands to control this additional PK settings are: WbDefinePk - Define a PK mapping for one table WbListPkDef - List the currently active PK mapping WbLoadPkMap - Load a PK mapping from an external file WbSavePKMap - Save the current mapping to an external file
- The number of columns the formatter ("Reformat SQL" menu item) puts into one line of a SELECT list, can now be defined: workbench.sql.formatter.select.columnsperline=1
- When creating insert statements, columns defined as identity columns are now ignored. This behaviour can be disabled (i.e. switch back to the old way) by setting workbench.sql.generate.insert.ignoreidentity=false
Bug fixes
- "Replace all" was not working with "Ignore case" in the editor
- Displaying table structure in DbExplorer was broken with Oracle 8i
- When "Retrieve DbExplorer" was not enabled in the options dialog, the schema dropdown was never populated in the DbExplorer
- When creating procedures or functions in Oracle, the error information was not always displayed correctly.
- WbExport did not export blob columns correctly when writing XML files
- A schema change (e.g. in Oracle via ALTER SESSION) was not always reflected in the connection info
- The SQL Formatter treats != as an operator (and does not separate the two characters)
- Copying selected data as SQL statements was broken
- Auto-completion was not working properly inside function calls
- Prevent sending another SQL Statement while a WbExport is running
- Copying data as SQL statements was broken
- FK Constraints were not compared correctly in the WbDiff command
- The defined date and timestamp format (Options) was not used when parsing dates entered.
- Minor bugfixes to the code completion
- Workaround for a bug in the Postgres JDBC driver which would not show tables in the DbExplorer for the schemas pg_catalog and information_schema
- Correct handling of MS SQL Server's BIT datatype when creating SQL statements.
- The shortcut @ for the WbInclude command is now only supported for Oracle because e.g. SQL Server uses the @ sign to name procedure parameters (and thus existing scripts do not work).
Build 83 (2005-11-20)
Enhancements
- Basic support for Oracle materialized views added
- WbDiff now includes Views
- The "Create DDL Script" is now also available in the Procedures tab of the DBExplorer, not only the Objects tab.
- Postgres: The source for a table now includes the index definition as returned by the view pg_indexes, thus indexes with operator classes are displayed correctly. The Index tab will still display it incorrectly though (the JDBC driver does not return the information)
- The WbExport command can now write a skeleton for an SQL*Loader control file when -oraldr=true is specified
- Tried to make concurrent access to the same connection more robust
- The data tab in the DbExplorer now displays the current table name
- Oracle public synonyms can now optionally be included in the auto completion popup. To enable this, a new property is available in workbench.settings: workbench.editor.autocompletion.oracle.public_synonyms=true
- Filters can now be applied to all columns with a single expression
- With WbImport -truncatetable=true can be used as a shortcut for -deletetarget=true -usetruncate=true. If -truncatetable is present -deletetarget will be ignored.
- WbReport now includes VIEW definitions
- Added support for views and triggers for Apache Derby in DbExplorer
- The password in the connection dialog can now be displayed in plain text
- Oracle 10g drivers do not work properly with Oracle 9i and date columns. (The time part is not retrieved correctly). SQL Workbench now always treats DATE columns as TIMESTAMP columns (i.e. it will getTimestamp() and java.sql.Timestamp objects for those columns) to preserve the time part. This can be switched off by setting workbench.db.oracle.date.usetimestamp=false in workbench.settings
- Added support for views, stored procedures and triggers for MySQL 5.x in DbExplorer
- When running external files using WbInclude the directory of the currently executed file is used as the "current" directory, so if the executed file is using WbInclude (@) files can be referenced with a relative path.
- SQL Workbench now supports reading and writing blob columns to and from external files. For updating blob and clob columns the usual UPDATE and INSERT statements can be used with placeholders for the file definition. To retrieve a blob the new WbSelectBlob command can be used. When exporting data into an XML file, blob columns are now written into external files (the files are referenced from the XML output) This has been tested with Postgres 8.0, SQL Server (jTDS driver), MySQL, Firebird 1.5 and SQL Anywhere. For Oracle, the 10g driver is required. Earlier drivers do not support the standard JDBC calls used for this feature.
- When "confirming" updates, there was no way to cancel the execution completely. WbInclude is now also considered as an "updating" command.
Bug fixes
- When using "Save Data as" date and timestamp columns were not written into the export file if not format was specified.
- When "Retrieve Explorer" was disabled, nothing was retrieved at all when the Explorer was opened in a separate window
- Checking for the MS SQL "GO" delimiter did not work properly
- Importing CLOB columns in Oracle did not work
- When using a different table name for the generated script with WbExport (with -type=sqlinsert) together with the -createtable option the alternate name was not used for the PK, FK and Index definition.
- "Replace all" did not work any longer in the editor
- The tree display of foreign key references did not work any more
- -decimal did not work for text imports
- Replace & Next was not using regular expressions correctly for the replacement string
- If an invalid regular expression is entered in the search dialog of the editor, an error message is now displayed.
- The defaults stated in the help for the WbDiff command did not match the actual defaults used. The constraint comparing is now reported correctly in the XML file as well.
- The first column of a result set could not be edited any more.
- Since 82.3 the assigned workspace file was not shown any longer in the connection dialog
- Fixed an error when loading files into the editor (files with CR/LF ending were not loaded correctly)
- When importing XML files with a CLOB column SQL Workbench/J would report an error.
- When an error occurs during inserting of new rows from a result set, and the error is ignored, the status for the incorrect rows is lost, and subsequent saving of the data will generate an UPDATE statement instead of an INSERT statement
Build 82 (2005-09-12)
Bug fixes
- @filename.sql was not working any longer
- Import of text files with the column definition in the header line was not working
Build 81 (2005-09-11)
Enhancements
- The filter definitions now support IS NULL and IS NOT NULL comparator
- Auto completion now supports CREATE VIEW statements.
- The SQL that is used for the UPDATE Statement in the WbImport command can now be "enhanced" with an additional WHERE clause. This can be specified with the parameter -updatewhere for the WbImport command. If this is specified e.g. -updatewhere="column=value" then this expression will be appended to the generated UPDATE statement with an AND condition. e.g. UPDATE table SET col1=?, col2=? WHERE id=? AND (column=value) If the expression starts with the keyword AND or OR, then it will appended to the UPDATE staement as it is. If it does not start with either of the two keywords, it will be put into brackets and appended using AND. The expression -updatewhere="AND (col5=42 OR col5 = 43)" will be append "as is" to the generated UPDATE statement.
- The execution time of the last statement is now also shown in the statusbar.
- The object types that are considered by the DbExplorer to contain data (i.e. that can be used in a SELECT statement) can now be configured. The default setting is stored in the property workbench.db.objecttype.data.default This can be overwritten for a specific dbms by replacing default with the DBID for the server, e.g. rdb or oracle workbench.db.objecttype.selectable.rdb=table,view,system,system view The values that should be listed in that property can be taken from the TYPE column in the Object list of the DbExplorer
- If a editor tab is associated with a file, the filename can now be displayed in the window title. This can be configured in workbench.settings with the property workbench.gui.display.showfilename Possible values are none,name,path. If this property is set to "name", then only the name of the current file (if any) is displayed in the window title. If it is set to "path", the full path will be displayed in the window title. Otherwise (i.e. if the property is empty, or not present) the filename is not displayed at all.
- Columns that are defined as NOT NULL are now displayed with a different background color during editing. This feature can be disabled using the property: workbench.gui.edit.requiredfield.dohighlight=false The default highlight color is: workbench.gui.edit.requiredfield.color=255,100,100 and can be changed with that property
- The file to be used to store the connection profiles can now be specified on the commandline using -profilestorage=filename.xml If the filename does not contain a directory, the configuration directory is used to search for the file, otherwise the full filename is used.
- Editor Tabs that contain a file can now be renamed as well. The full filename is only available as the tooltip of the tab. To restore the title to the file's name, rename the tab to an "empty" name
- The editor tabs can now be re-ordered (right click on the tab, choose "Move left" or "Move right"
- The retrieval of the row count can now be configured in the data tab of the DbExplorer (using the "Settings" button)
- Added a column filter and searcher to the column list display in the DbExplorer
- The table list in the DbExplorer now uses a filter instead of simply searching for an object name.
- Filtering of the resultset is now possible
- The DbExplorer now lets you define the key columns for a table in the data tab.
- Support for completion of INSERT statements added
Bug fixes
- If running SQLWorkbench/J in batch mode and the specified connection profile was not found, no clear error message was shown.
- When importing several files with the WbImport command that specified a different schema then the current one, SQL Workbench/J tried to delete the tables in the schema defined by the files not by the -schema switch.
- WbReport now ensures, that the values stored in the DB Info part are valid XML by replacing potential illegal characters (e.g. (char)0)
- The size (width) limitation for the schema selector in the DbExplorer has been removed
- New tabs were not always selected correctly (i.e. a different tab was considered the active tab)
- Defined Filters were not displayed correctly when re-defining
- The order of the foreign key/primary key columns was not correct in the generated source for a table
- The generated SQL for foreign key constraints in Oracle would contain an "ON DELETE" rule which is not supported by Oracle
- If the name of an editor tab contained a number equal to the index of the tab, the shortcut was not displayed correctly
- The scripts for SYNONYMs and SEQUENCEs were not created in the DbExplorer (Create DDL Script)
- When importing a text file that has fewer columns then the target table, not all columns were imported properly
- When a DbExplorer tab was currently selected, creating a new SQL Tab did not work properly with JDK 1.5
- Using Ctrl-Space as the shortcut for code completion now works properly
- Fixed a bug with the autocompletion of columns in DELETE statements
- When closing the search dialog in the editor with the ESC key, the search was performed anyway.
- Prevent endless loops with faulty JDBC drivers when retrieving warnings and errors after a retrieval.
- BIT and BOOLEAN fields where not handled correctly when importing XML files generated by SQL Workbench/J
- Automatically detecting the alternate delimiter did not work properly when using @ as a replacement of the WbInclude command
- Displaying procedures did not work any longer
- Re-introduced fix for the bug in Oracle 9 regarding the wrong information vor VARCHAR columns if NLS_LENGTH_SEMANTICS is set to char
- When connecting to a database profile with a workspace assigned while a workspace was loaded the last tab would be removed from the currently active workspace
- Fixed some errors in the generation of DbDesigner files
- When using single line comments in the FROM list, the comments would show up in the generated update statemens when editing the data
- Fixed incorrect quoting for table names when creating statements to save the changes to the data.
Build 80 (2005-06-26)
Enhancements
- Support for schema changes in HSQLDB and Oracle added
- Added a workaround for the PostgreSQL JDBC driver not understanding the "dollar" quoting when creating functions.
- WbImport now supports the -sourcedir parameter for text files as well.
- WbDiff now supports more parameters to control the level of comparison
- The usage of the schema name in DML statements generated by SQL Workbench can now be controlled. To do this, add the line workbench.sql.ignoreschema.<dbid1>=schema1,... You can use * to ignore omit all schemas in DML statements, or list each schema that should be ignored (e.g. PUBLIC) separately. The <dbid> that is generated for your DBMS is reported in the log file after a successful connection (the log level needs to be set to INFO). Look for the text "Using DBID"
- Code completion for tables and columns is now available. It can be activated by Ctrl-Q while the cursor is inside a SELECT, INSERT or UPDATE statement (other statements are not yet supported). To correctly identify the objects that need to be displayed it is required that the statement is somewhat correct (it does not need to be complete, but the statements in the editor have to be separated using ;) When a column or table name is pasted into the editor, it is pasted the way the JDBC driver returned the name. With workbench.editor.autocompletion.paste.case=lower this behaviour can be controlled in workbench.settings. Allowe values for this property are lower (names are pasted in lower case), upper (names are pasted in upper case) or empty. If the property is empty or not present at all (default) then the names are pasted as they are returned from the driver
- Added support for the new CHECK constraints in FirstSQL/J
- Added a new menu item for controlling auto commit
- Enhanced the performace of WBINCLUDE when processing scripts that are not read into memory completely.
- Multiple Database Explorer windows and/or tabs can now be opened. The existing "Show Database Explorer" menu works as before. Additionally there is "New Db Explorer tab" and "New DbExplorer Window" It is strongly recommended to use the option "Separate connection for each tab" in this case to avoid threading problems in the JDBC driver
- Sorting inside the result has been changed slightly. For performace reasons Strings are now compared using Java's internal compare which might produce incorrect results for certain languages (http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#compareTo(java.lang.String)) To enable a language and country specific collation please use the following properties in workbench.setttings: workbench.sort.usecollator=true workbench.sort.language workbench.sort.country to specify the collation that should be used.
- Workbench commands are now formatted correctly when using "Format SQL"
Bug fixes
- Fixed a bug in the handling of BIGINT columns.
- Cancelling a WbExport is now more reliable.
- Fixed a problem with detecting the "current" statement in the editor when using Ctrl-Enter
- Fixed some problems with WBCOPY and creating tables during copying
- When creating Oracle packages, errors were not shown correctly
- Postgres' JDBC driver does not understand the "dollar quoting" when creating stored procedures. A workaround was implemented to be able to run the same scripts as with psql
- when running "SET AUTOCOMMIT" the commit and rollback toolbar buttons where not enabled/disabled accordingly
- Fixed a problem in the SQL parser with single line comments in the last statement of the editor
- WBINCLUDE was not working if no encoding was specified
- WBCOPY was not working when beeing used from within a batchfile
- Display (and export) of the time part of an Oracle DATE column was broken
- When no tables were found using WbExport -sourcetable=* no proper error was reported.
- When using WbXslt the output file was not close properly and thus locked until the application was ended
- When changing the selected table in the DbExplorer while a table definition was loaded, the application could hang.
Build 79 (2005-04-25)
Bug fixes
- WbImport was not working if no encoding was specified
Build 78 (2005-04-24)
Enhancements
- The default behaviour when creating text files with WBEXPORT for writing a header line, can now be defined using the property workbench.export.text.default.header (The existing setting workbench.export.text.includeheader stores the last selection when the export file was created using the GUI rather then WBEXPORT)
- Two new settings to control the formatting of generated SQL statements: workbench.sql.generate.insert.doformat workbench.sql.generate.update.doformat If set to false generated SQL statements (INSERT, UPDATE) will always be put into a single line.
- WBIMPORT now accepts -sourcedir for XML files to import all .xml files in that directory. When mixing XML files with long and short tags this works only if the files are created with this build, as the information about the tags used is available in the meta data of the XML file.
- WBEXPORT now accepts -sourcetable=* to export all tables
- A new command - WBDIFF - to generate an XML presentation of the difference between to schemas. The XML shows all modifications that need to be done to get the target schema to the same state as the reference (=source) schema. XSLTs to transform this XML into SQL scripts will follow
- WBIMPORT now supports -importcolumns for XML files to select only certain columns from the input file
- The DataPumper can now use a text or XML file as the source
- The WBINCLUDE (and batch execution) command will not load script files into memory that exceed a certain size. They will be processed statement by statement which is a bit slower then loading them into memory. The threshold can be defined in workbench.settings with the property: workbench.sql.script.inmemory.maxsize The value is defined in bytes. Any file exceeding this size will be processed by not loading it into memory. The default threshold is 1MB (which means that any file that is smaller then 1MB will be processed in memory)
- When importing text files, columns can now be excluded from the import by specifying $wb_skip$ as the columnname in the -filecolumns parameter or by supplying a list of columns to be imported using the -importcolumns switch
- When importing text file, filters based on regular expressions can now be applied either on column level or input line level (using the -columnfilter or -linefilter switch)
- The WbImport command can now switch off the progress display of the current row which speeds up the process when importing from within the GUI (batch import does not suffer from the performance impact of the progress report). To disable the progress use -showprogress=false Alternatively the interval for the reporting can be selected as well -showprogress=100 will only update the display every 100 rows. Additionally the performance of the status display has been improved. Loading large result sets (which report the progress as well) and importing using -showprogress=true (the default) should run quicker now
- Errors during script execution can now be ignored by default (SQL -> Ignore errors)
- The source for stored procedure and views can now be displayed for Informix (thanks Meikel)
- Prepared Statements (i.e. ? in a SELECT) are now supported This support relies on certain JDBC features which are not available e.g. in Oracle's or PostgreSQL's JDBC drivers. Currently this has been tested with Firebird and HSQLDB.
Bug fixes
- Date columns where not exported (Clipboard, WBEXPORT) correctly with Oracle (the export would not use to_date())
- The source for Oracle packages are now displayed correctly
- When using -charfunc for WBEXPORT the generated SQL Statements were not correct if a non-printable character was immediately followed by another non-printable character.
- [Oracle] In the DbExplorer the name for table level check constraints was not included in the SQL source
- Entering timestamp values did not work.
- Worked around a bug in the Oracle driver which would not return the correct objects for Timestamp (Oracle 9) columns
- Ctrl-Enter was still working even if the application was disconnected.
- When exporting data from the select SQL statement, this now blocks the current panel (just like executing the statement would do) to avoid conflicts with non-threaded JDBC drivers
- Fixed a problem with the parsing of SQL statements with comments
- When importing text files with quote characters, empty fields ("") where not processed correctly (the import would fail with an error)
- Fixed a uppercase/lowercase problem when using WBIMPORT
- When the -file switched is not supplied when using WBIMPORT a clear error message is now given.
- Sometimes connection errors where not displayed correctly (the application would display the "Connecting to the database..." message indefinitely)
- Fixed a problem when no workspace file was defined for a connection profile that was introduced with 77.6
- SELECT .. INTO did no longer work with Informix and Postgres
- Tried to make the workspace loading more robust to avoid corrupted workspaces.
- When a file was saved with an encoding other then the default encoding, the encoding was not properly restored when the workspace was loaded again.
- SELECT statements that were immediately followed by a whitespace other then a regular space were not detected correctly when exporting data.
- "Show table data" in the DbExplorer did not always use the correct table definition.
- Schemas with underscores where not treated correctly when creating UPDATE statements for the result set
- When a table was created using lowercase in Oracle, the DB Explorer would not work correctly for displaying data and dropping the table
Build 77 (2005-02-12)
Enhancements
- When saving a result set using "Save as", the table to be used for INSERT statements can now be defined. (For UPDATE also, but that requires the retrieval of the PK columns prior to opening the dialog)
- The usage of the NULL keyword in a CREATE TABLE statement (DbExplorer) can now be configured. If the DBID of the connection is listed in the property workbench.db.nonullkeyword then the NULL keyword will not be used when generating the CREATE TABLE
- When copying data to the clipboard (Text, SQL), or saving the result set to a file (Data -> Save Data As) the columns that should be include can now be selected. When copying to the clipboard the selection dialog is displayed when pressing the CTRL key while clicking the menu item.
- When connected to a FirebirdSQL database, the command INPUT can also be used to call one SQL script from another.
- A query timeout can now be defined (Whether it is really working depends on the capabilities of the JDBC driver)
- Selected text (or the current line) can now be commented or un-commented using the Shortcuts Ctrl-Shift-C (Comment) or Ctrl-Shift-U (Uncomment)
- Added a "Select all" and "Select none" button to primary key select dialog (when updating a table without primary key definition)
- Added support for McKoi database
- The formatting of the generated INSERT statements can now be influenced by setting two properties in workbench.settings: workbench.sql.generate.insert.newlinethreshold defines the number of columns in the table before any reformatting of the column list or values list takes place workbench.sql.generate.insert.colsperline if the INSERT statement affects more then 'newlinethreshold' columns this value defines the number of columns to put into a single line. The default is newlinethreshold=5 and colsperline=1 which results in the same formatting used as before.
- Added more logging during connect
- The display format for DATE and DATE/TIME datatypes can now be specified seperately. With Oracle (at least Oracle8) however this does not work because there is no (real) distinction between DATE and TIMESTAMP
- The usage of the user name for SQL Statements created for "Export" can now be disabled using the property: workbench.export.sql.includeowner=false
- Data can now be saved and copied as DELETE/INSERT as well.
Bug fixes
- The AVG() function was not displayed correctly
- When opening the Save as dialog, the application tried to check the update table even if "Disable automatic update check" was enabled
- Tried to fix a problem where the "Manage Driver" dialog was not displayed correctly under Linux
- The WBCOPY command did not properly report an error when the source or target table was not found.
- The WBCOPY command always issued an error if the JDBC driver does not support batch updates even if batchupdate was set to false.
- When using a separate connection per tab, connection errors that occurred during a connection for a tab were not displayed to the user, and the "Connecting..." message would not be closed
- If rows where only inserted into a table with no primary key, the DbExplorer would not update the table
- Syntax highlighting for statements with embedded # was not displayed correctly for non-MySql connections
- When spooling data from within the editor, the progress was not shown correctly
- When turning password encryption on (or off) the encrypted (or readable) passwords were only written to WbProfiles.xml if at least on Profile was changed.
- When an import was cancelled no messages were shown.
- When a driver class was defined with a trailing space, the driver definition was not found and the connection to the server failed.
- Date columns were not displayed according to the date format defined in the Options dialog
Build 76 (2004-12-12)
Enhancements
- Files can now be dropped on the editor tabs a the dropped file will be loaded into a new tab.
- The display of messages in the log/message panel can now be controlled by WBFEEDBACK [on|off] This will override the setting from the Options panel until WBFEEDBACK is executed again, or the application is restarted. It does not change the global (default) setting.
- Files can now be executed using @<filename> or wbinclude <filename> (in contrast to Oracle, this "command" does require a statement delimiter if used together with other statements, e.g. @myfile.sql;
- Autocommit can be controlled with SET AUTCOMMIT ON/OFF for all DBMS
- Added sequence definition display for HSQLDB 1.7.2
- Added basic metadata support for Ingres (Procedure, Trigger, Sequences, Synonyms and View source display)
- WBEXPORT does not use quoting at all if -quotechar is not specified.
- The line ending for text and XML export can now be defined through the -lineending switch for the WBEXPORT command. Supported values are: dos,win,crlf for the sequence CHR(13)CHR(10) (=\r\n) and lf,unix for the LF character CHR(10) or \n -lineending=dos is equivalent to -lineending=win and -lineending=crlf -lineending=unix is equivalent to -lineending=lf If no line ending is defined, then the default platform line ending will be used (the textexport did always use LF before)
- WBEXPORT can now escape non-ascii characters in a unicode manner (e.g. \u0123, \n, \t). This can be enabled with the -escapetext parameter. Valid values for this parameter are: ctrl - escape all characters below ascii 32 7bit - escape all characters below ASCII 32 and above 126 8bit - escape all characters below ASCII 32 and above 255 extended - escape everything outside [32,126] and [161-255] WBIMPORT now supports the -decode switch to read files which contain escaped characters from the WBEXPORT command.
- WBEXPORT now supports the -quotealways=true flag. In this case the quote character is always put around data values (without this switch the quote character was only used if the delimiter was found in the data value)
- The schema report written with WBREPORT is now always sorted by table name and the columns are sorted as well to allow better comparison between two different reports.
- For drivers supporting batch updates, batch execution can now be enabled with WBSTARTBATCH. The queued statements are sent to the server when WBENDBATCH is executed.
- When loading and saving editor files, the encoding to be used can now be selected.
- When savind data directly from the result set, all options from WBEXPORT can now be specified.
- A new option for the connection profile to confirm execution of any statement that modifies the database or its content.
- The WBEXPORT command now supports the -usecdata flag. If set to true character data will be written as CDATA sections in XML exports
- The Schema Report can now be written in DbDesigner format (http://www.fabforce.net/dbdesigner4/) by supplying -format=dbdesigner switch for the WBREPORT command.
- When defining a variable the SQL Statement used to retrieve the value can now also include variables.
- The DbExplorer now displays the number of tables/objects displayed
Bug fixes
- The editor now reads UTF files with a leading BOM correctly
- Text import now ignores empty lines
- Text import did not work, if the number of imported columns was different to the number of columns in the table.
- Leaving out the -quotechar for WBIMPORT still used " as the quote character.
- The parameter -continueOnError for WBIMPORT did not work.
- Specifying only -header=true for WBIMPORT did not work.
- When an invalid file was passed using the -script parameter no message was displayed to the console.
- Oracle's LONG columns were not handled properly for XML import/export
- -concat and -charfunc did not work for WBEXPORT's SQL format
- When a workspace was corrupted (e.g. ZIP file damaged) the application would hang when loading the workspace and no error was reported.
- The WBEXPORT command could not be cancelled
- Supplying username/password directly in the URL did not work for connection profiles
- When a variable was used more then once in a statement, it was not replaced correctly.
- Workaround in variable definition with a SELECT statement for HSQLDB. (Statements with group functions were not evaluated correctly)
- The parameter -append for WBEXPORT did not work anymore.
- "Jump to next Statement" did not work if "Highlight current statement" was enabled
- Tried to prevent a reload in the DbExplorer while a database update is running
- Multi-Line comments (using /* ... */) are now displayed correctly
- WBEXPORT would not report an error if the table defined in -sourcetable did not exist
- The editor tab width can now be set in the options dialog
Build 75 (2004-10-08)
Bug fixes
- The display of table source was broken
Build 74 (2004-10-07)
Enhancements
- When an error occurs during data retrieval, the rows that have been retrieved until then will be retained and a warning will be displayed in the message panel
- Added -emptystringnull for text import (WbIMPORT) to specify the behaviour for empty strings during import. -emptystringnull=true will insert a NULL value for an empty string (string of length zero)
- Updated support for Cloudscape to include the move to Apache Derby
- When searching for text in the editor and the search string is not found, a message is now displayed.
- When executing several statements, the currently executed statement can now be highlighted
- An XML report of the database tables can now be generated using the WBREPORT command or from within the table list of the database explorer.
- If a table does not have primary key columns defined, the key columns that should be used for updating the table can now be defined (implicitely all columns were used before)
- Several WBEXPORT enhancements: The command now supports the -keycolumns switch, to define the key columns to be used when generating UPDATE statements (to either override the definition from the database, or defined key columns if the table does not have any) The command now supports the -sourcetable switch, to directly export one or more tables without the need of an additional SELECT statement. Using the -sourcetable switch requires the -outputdir switch, to define the target directory of the generated files The command now supports the -concatfunc switch which allows to set a function that concatenates strings. This is needed for e.g. for MySQL which does not support any (standard) concatenation operator at all. The -concat switch and the -concatfunc switch are mutually exclusive. The command now supports transforming the resulting XML file using XSLT. Two new parameters (-stylesheet and -xsltoutput) have been added to support this. The transformation will be executed after the XML file has been created. The transformation can also be executed "standalone" by using the new command XSLT (this could e.g. be used to transform the result of the WBREPORT command into a different format)
- Cancelling a SELECT statement now works also for JDBC drivers that do not support the cancel() operation.
- The source display in the DbExplorer can now be expanded to cover the full width by using Ctrl-Shift-T (or the little arrows in the split display). The shortcut actually toggles the display between full width and split display
- Only selected rows can now be copied to the clipboard (as text, INSERT or UPDATE statements)
- If the password should not be stored for a profile, the user is now prompted to enter the password when trying to connect using that profile
- For Oracle, table and column comments are now also created in the SQL statement to recreate a table. This requires that the Oracle JDBC driver returns the comments. See the online help for details on how to configure the connection to Oracle to show comments
- A new option has been added to the connection profile "Rollback before disconnect". Some DBMS (e.g. Cloudscape) require that all pending transactions are ended before disconnecting. Cloudscape already starts a transaction during a SELECT statement, and requires all transactions to be ended before disconnecting. If this option is enabled SQL Workbench/J will issue a rollback before doing the actual disconnect
- The logging has been improved. Logging to the console can now be disabled (workbench.log.console=false). If enabled it will now log to System.err (instead of System.out). The format of the log message can now be defined through workbench.log.format Valid placeholders are: {type} DEBUG, INFO etc {timestamp} {message} The actual log message {error} The error message from the exception (if present) {source} Where the error occurred {stacktrace} The exception stacktrace if any (will always be displayed after the log message regardless of the position in the format string If the level is set to debug, the stacktrace will always be displayed
- The batch runner now displays the messages returned from the individual commands to System.out and doesn't use the logging facility any more. Combined with workbench.log.console=false the output of a batch run is now very similar to the messages printed in the GUI. Additionally result sets (if available) can now be printed to the console using the commandline switch -displayresult=true
- Views and triggers are now displayed for Cloudscape in the Database Explorer
- Added the commandline switch -ignoredroperrors for batch mode. This sets the "Ignore errors from DROP commands" property for the connection (same effect as connecting with a profile where this behaviour is enabled)
- Variable subsitution is now supported. Variables can be defined interactively (using WBVARDEF) from a file or as the result of a SQL query. A variable can be referenced so that Workbench prompts never, only once or always for a value. For details see the online help.
- When pressing Shift while selecting one of the "Optimize Column Width" menu items, the column label will be taken into account for the optimal size. Ctrl-Shift-W will optimize all columns with respecting to the column's name. This shortcut cannot be remapped currently.
Bug fixes
- The SQL history is now written in UTF-8 to preserve special characters
- When the application was closed the user was asked up to three times if he wants to save modified files
- When importing textfiles, the dot was not the default decimal separator as stated in the manual
- When importing textfiles with wbimport the columnlist was not recognized correctly if the commas where followed by spaces
- Even if a statement consisted only of comments or whitespace it was still send to the server
- Fixed a memory leak in the retrieval of foreign keys
- If a workspace could not be loaded (due to an error), the user is asked if he wants to create a new workspace with that name.
- When an error occurred during an import into the current result set choosing "Cancel" or "Ignore all" had no effect, the import would continue in either case.
- When clicking quickly in the list of tables in the DbExplorer, it could happen, that the application locked up (when the DB responded to slowly)
- SQL Statements that contained german umlauts (and possibly other non ASCII characters) would fail to execute
- When importing a text file empty values for numeric fields gave an error. They are now treated as NULL.
- When trying to delete multiple rows before switching to edit mode, only the first row was deleted (because switching to edit mode resets the row selection)
- Generate Delete Script wasn't working if "Disable automatic update table check" was turned on for the profile Fixed some minor problems during delete script generation.
- After changing the object type in the DbExplorer the focus is not set to the table list
- A profile where the driverclass was registered more then once (using different names) was not copied correctly.
- When importing a text file with -header=false and -columns=... the first line of the file was not imported.
Build 73 (2004-08-02)
Enhancements
- The TableSearcher now displays the number of rows for each table
- The resource file with translations is now also searched in the subdirectory language (relative to the location of workbench.jar) Thus it is possible to install other languages without re-compiling the application.
- When starting to edit data in the result set, the text is now automatically seleted. This can be set to old behaviour by workbench.table.edit.autoselect=false in workbench.settings
- The shortcut for the Redo command can now be configured
- Indexes can now be dropped and created from within the DbExplorer
- CLOB columns are now displayed properly (only tested for Oracle), they still cannot be updated.
- LONG columns for Oracle can now be read and written
- The variable prefix when creating a code snippet can now be defined in workbench.settings. The property name is workbench.editor.codeprefix
- A SQL file can now be reloaded
- From the table list in the DbExplorer an empty INSERT statement can now be generated for the selected table(s).
- When creating a Java Code snippet, a trailing ; will be removed from the Java String
- The COPY command and the DataPumper now allow creating a table when a source query is used. If the JDBC driver of the source system does not provide the correct column information for the source columns, this will not work properly.
Bug fixes
- Workaround for a bug in the HP/UX Java implementation when setting a system property
- When switching the selected table quickly in the DbExplorer the data display would stop working.
- The COPY command can now also be invoked using WBCOPY. This is necessary for PostgreSQL as it has its own COPY command.
- When retrieving long VARCHAR columns from a Sybase Server, the Sybase JDBC driver would trow an exception while retrieving the MetaData for the ResultSet.
- The formatter would split up >= <= with a space which does not work for some DBMS
- Copying data in the DataPumper would fail if the target table should be created on the fly.
- DbExplorer: with MS SQL Server the Owner selection did not work for the procedure tab.
- DbExplorer: Fixed a problem when retrieving procedures
- Fixed a small problem with parsing scripts that contain # style comments
- Cleaned up the code for setting the wait (hourglass) cursor to make it more robust.
- Added elsif as an keyword for the editor syntax highlighting
- If a macro contained more then one statement, only the first one was executed
- The "Include Constraints" option wasn't working when dropping tables from within the DbExplorer
- If a statement produced an error, the statement not always selected correctly in the editor
- Fixed a deadlock in the DbExplorer when right clicking immediately after clicking in the table list (while the table definition was still beeing retrieved)
- When an error occurred during updating the result set, the message to continue/abort was not always displayed.
- Comments in the source query for the COPY command are now preserved
- Delete scripts where not generated correctly
Build 72 (2004-05-13)
Enhancements
- Rows in the result set can now be copied ("cloned")
- The text file import now reports the rows which had problems
- If no look and feel has been selected by the user (e.g. when starting for the first time), SQL Workbench/J now uses the system look and feel
- The Table Search Panel now has a "Select All" and "Select None" button to ease the selection of tables.
- In the Table Search Panel, the search can now also be invoked by pressing ENTER in the text field for the criteria
- The automatic check for the update table after the retrieve can now be disabled per profile. This is useful for slow connections/databases where the retrieval of the table meta data takes long.
- Added default definitions for DB2 driver
- When using the EXPORT command -createtable now also works for SQL statements that contain a join. SQL Workbench/J tries to include a CREATE TABLE which matches the result set structure as close as possible
- SELECT ... FROM table INTO temp_table now works with Informix and for PostgreSQL (slightly different syntax)
- The database explorer now optionally uses the list of table types returned by the driver when selecting the type * The Postgres JDBC driver returns only certain types (e.g. not the system tables) even when all table types are requested. This behaviour can be controlled through the property workbench.dbexplorer.usetypelist (true or false)
- The SQL formatter does not add a space between a function and the following opening bracket. The function names which are included in this check are retrieved from the JDBC driver. The space would break SQL statements for MySQL as it does not comply with the SQL standard.
- Batch updates are now supported for the DataPumper, the COPY and IMPORT commands (depending on the support by the JDBC driver of course)
- SQL Workbench/J can now be configured to ignore certain SQL commands. This is useful for e.g. scripts that are written for SQL*Plus and contain SQL*Plus specific statements (e.g. EXIT, WHENEVER)
Bug fixes
- Importing a text file did not work for data types other then VARCHAR
- Updating the database from the DbExplorer is now done in the background so that the GUI doesn't lock up.
- When updating a table from within the DbExplorer, the setting to preview the update statements was not used. (The preview was never shown)
- A single quote character in a comment would break the parser to recognize the individual statements
- When using several windows, only the workspace for the active window was saved when closing the application
- The procedure display for SQL Server was not correct (it would always show "RESULT" as the type even if it really was a procedure) therefor the generated DROP statements weren't correct.
- Using GO as the delimiter for SQL Server did not work any longer
- When using "New Window" to open a new window with a different connection the connection from the first window was broken
- When opening the driver manager dialog from the connection dialog, and closing the driver manager with OK, the selected driver class in the current profile was changed back to the first driver (Thanks Meikel!)
- The SQL formatter was removing the semicolon at the end of a statement
Build 71 (2004-04-05)
Enhancements
- The SQL parser now accepts # as a single line comment character as well (MySQL standard)
- The EXPORT command can now export to HTML as well.
- If an error occurs during sending result set updates to the database, the user can now choose to abort or ignore the errors.
- In the result sets more then one row can now be selected and deleted.
- The popup menu for the table list (in the DbExplorer) now offers the possibility to delete all table data.
- Procedures and packages can now be recompmiled for Oracle
- Files can now be dropped from the filesystem into the editor
Bug fixes
- If no development build is available the version check information does not show anything at all
- When closing tabs with files in it, subsequent tabs without names where not reloaded correctly the next time.
- The label for the alternate delimiter in the options dialog was not displayed correctly
- When using MS SQL Server with autocommit off, the update table was not retrieved correctly and thus "Copy as INSERT" was not working
- If a file was opened using Ctrl-O or saved using Ctrl-S the tab label was not updated.
- If the DataPumper (or import) was defined with update mode and only key columns where selected, it would fail without reporting the cause of the problem.
- When opening multiple windows, the DatabaseExplorer would not work properly if the Connection Profile was set to "One Connection per Tab"
- Workspaces where one editor tab was completely empty were not loaded properly.
- The page setup dialog (from within the print preview) caused the application to hang when run under Linux
Build 70 (2004-03-05)
Enhancements
- The EXPORT command now supports the -append parameter to append text of SQL output to an already existing file
- When printing, the page now contains a header identifying the source of the data (e.g. the table's name when printing its definition or the beginning of the select statement)
- Reworked the layout of the DataPumper
- Errors reported from Oracle's SET command are now ignored. Thus scripts intended for SQL*Plus containing things like SET LINESIZE can be executed without an error message.
- Column/Table level constraints defined with the check() keyword are now displayed in the SQL source for a table. Currently this is implemented for Firebird, Postgres, SQL Server, Oracle, Adaptive Server Anywhere and HSQLDB >= 1.7.2 RC2
- The DatabaseExplorer now shows Sequences for Oracle
- The connection info can now be configured with the property workbench.gui.connectiondisplay The value for that property can contain the following placeholders: %username%, %url%, %profile%, %catalog% The placeholders are case sensitiv! If this property is not set, the old display will be shown. The following entry would re-created the old display: User=%username%, URL=%url%
Bug fixes
- Oracle: VARCHAR columns with UTF8 and nls_length_semantics = char are now displayed correctly
- The setting to disable/enable the DBMS_OUTPUT package by default for Oracle was not saved (so it was enabled always)
- Oracle: When retrieving LONG columns with DBMS_OUTPUT support enabled, the whole statement would fail
- If a workspace was closed, the first tab was not renamed correctly
- SQL Workbench/J changed the color of the grid lines to a light gray which causes problems for some background/foreground color combinations. The grid color can now be configured. To get the default dark gray back, add workbench.table.gridcolor=128,128,128 to your workbench.settings
- The shortcut for the DatabaseExplorer (Ctrl-D) could not be remapped correctly
- "Match Bracket" did not show up in the shortcut list (and on the menu)
- The display was not scrolled properly when jumping to the end of a line which does not fit into the editor horizontally
- Creating a new Connection Profile did not always work
- Fixed some problems with SQL Server, because the MS JDBC driver did not allow for multiple concurrent statement objects to be created.
- -mode=update,insert did not work for the COPY command because the parameter for the key columns was not parsed
- When an error occurred during the update of the database, the message was not displayed correctly (missing key in the resource file)
- If an error occurred when saving the contents of the SQL editor to a file, no message was displayed to the user.
Build 69 (2004-02-01)
Enhancements
- Added support for ThinkSQL
- Added support for DBMS which only allows definition of foreign and primary keys inside the CREATE TABLE statement
- The status bar is now always displayed in the main window (not only when the result panel is visible)
- Data can now be saved as SQL UPDATE statements as well (if the table has a primary key defined)
- IMPORT, COPY and the DataPumper can now optionally update existing records
- When using "Execute Current" the editor now (optionally) jumps to the next statement.
- The COPY command does not require a profile any more. If neither source nor target profile are specified the current connection will be used for both.
Bug fixes
- When using a DBMS with schemas, the DbExplorer would not always retrieve the data correctly
- When running scripts with a large number of CREATE statements, a "Maximum number of open cursors exceeded" could occur with Oracle
- Workaround for JDBC drivers that do not support the setMaxRows() function
- When saving data from the result set, the export type was determined by the extension and not by the selected file filter. Thus an export into a text file with an extension other then txt did not work.
- The macro manager could not be closed if no macro was defined
- The Oracle data types NVARCHAR2 and NCHAR were not displayed correctly in the table definition
- The COPY command always required a -targetprofile
- The source for functions in PostgreSQL is not displayed correctly
Build 68 (2004-01-20)
Bug fixes
- Spooling of more then one table from within the DbExplorer did not work
Build 67 (2004-01-20)
Enhancements
- Selected text can now be indented and un-indented using the tab key (or Shift-Tab)
- Column selection mode can now also be activated by keyboard. Alt-Q will activate the column selection mode for the next selection Column selection is always possible by holding down the Ctrl key while selecting with the mouse
- Jump to first statement and jump to last statement are now available for the statement history.
- If a statement fails (while executing several statements), it is now highlighted in the editor
Bug fixes
- When cancelling an update, or an error occured during the update of changes made directly in the result set, the changes were lost.
- The SQL source for a table was wrong for Firebird, because Firebird does not understand the NULL keyword
- Macros where not saved
- The MacroManager did not work if no macros where defined.
- The COPY command did not work if no columns where specified
- Adjusted the MetaData SQL for HSQLDB 1.7.2 Triggers (which unfortunately breaks the trigger display for earlier versions as the column names where changed)
- The source code for VIEWS was wrong
- The last SQL tab could be closed.
Build 66 (2004-01-10)
Enhancements
- A Data Pumper is now available which makes it possible to copy tables directly from one database to another without using export files (Tools->Data Pumper) The same functionality is also available through the COPY command.
- The connect dialog now has a separate button to copy a profile
- The export command now supports the -showprogress switch
- If DBMS_OUTPUT package for Oracle is enabled by default, a default buffer size can now be defined
- You can now check if newer versions are available from the WebSite (Help -> Check for updates)
- With MySQL the database explorer now displays correctly columns of type enum or set (complete definition)
- Reworked the documentation about using batch files
Bug fixes
- Logging with type INFO did not work
- When reformatting SQL statements the formatter would remove closing brackets in some cases.
- Fixed a repainting problem in the editor
- The table to be updated for in-place editing and importing was not recognized properly if it was prefixed with a user (e.g. SELECT * FROM myuser.mytable)
- When changing a connection profile and saving the profiles from within the connect dialog, the application would still ask if the profiles should be saved when exiting.
- -commitevery for IMPORT was not recognized for text imports
- With Oracle the DbExplorer would sometimes not display anything if something other then "*" was selected in the "Type" dropdown of the table list.
- The -profile and -script parameters were broken (Thanks Jared!)
- The SQL formatter would remove a semicolon at the end of a statement
- Fixed a small bug when creating an IN list with numbers
- The current "MaxRows" setting is now stored in the workspace
Build 65 (2003-12-13)
Bug fixes
- Horizontal scrolling would overwrite the line numbers (Thanks Vano!)
Build 64 (2003-12-12)
Enhancements
- When executing a macro through the menu, pressing shift will replace the current editor text.
- A macro can now be executed by double-clicking in the "Manage Macros" window
- Macros now got a menu of their own, to make it faster to select a specific macro
- More detailed logging (in Debug mode) when finding a driver class
- Searching and replacing text always took the entered value as a regular expression. Now the dialogs have a checkbox where the use of a regular expression can be turned off (so it is now possible to search for (+) )
- The file encoding can now be specified with XML export and import.
- XML import can now be cancelled
- The editor now displays line numbers (View->Show line numbers)
- Text file import is now possible through the IMPORT command
- Log messages are now appended to the log file. The max size for the log file can be specified with the property workbench.log.maxfilesize in workbench.settings
- Added metadata stuff for Adaptive Server Anywhere
- COMMIT and ROLLBACK can now be executed through the menu as well. Alt-M is the shortcut for COMMIT Alt-R is the shortcut for ROLLBACK
- Shortcuts can now be configured
- The title bar now show a little indicator as long as a statement is running
Bug fixes
- When opening a new file, the user was not prompted if pending changes in the current file should be saved
- If a tab contains a file, and the user cancelled the file open dialog the file icon was removed from the tab
- The DEFAULT clause for a column for Oracle was not generated correctly in the DbExplorer
- Fixed a bug in the tree display for foreign keys. If there were circular references the code was stuck in an endless loop
- Errors during the parsing of the various XML configuration files are now logged
- As Ctrl-M is now opening the Manage Macro Dialog, F7 is the new shortcut to set the focus to the "Max. Rows" field
- The SQL Formatter now handles CREATE TABLE and CREATE VIEW better. Also comments in the script are handled better now.
Build 63 (2003-11-16)
Bug fixes
- Under Firebird, listdb would throw a NullPointerException. LISTDB now correctly displays nothing, as catalogs are not supported by Firebird
- Disconnect did not work properly if "One Connection per tab" was enabled in the profile.
- The current workspace was not saved, when File->Disconnect was selected
Build 62 (2003-11-15)
Enhancements
- The newline character in code snippets can now be supressed with a property in workbench.settings workbench.javacode.includenewline=false
- Enabled the old shortcuts for previous and next statement (Ctrl-P, Ctrl-N) again. They are available as an alternative to Alt-Left and Alt-Right.
- SQL Workbench nows displays a MessageBox when the connection fails.
- The SQL formatter can now format more then one statement
- The table source now shows the grants made for a table
- Reworked SQL Macro handling. File->Manage Macros has been removed and merged with "SQL->SQL Macros->Run macro...". The combined functionality is now available under "SQL->Manage Macros..." The new Dialog also offers the possibility to replace the current editor text with the SQL text from the macro. When executing a macro by typing its name in the editor the text will still not be replaced
- Under Oracle the DbExplorer now displays the definition for function based indexes correctly.
- If a workspace for a profile does not exist when connecting to that profile the user will now be prompted if the workspace should be created, or a different workspace should be loaded.
Bug fixes
- The oracle driver tries to do an ANALYZE on the table when retrieving the table indexes, which fails (and is dead slow as well) when using an account which does not have privileges to do so. The indexes for Oracle are now retrieved with an own SQL statement rather then using the driver.
- When switching back to a panel which was currently executing a statement the application would hang.
- If a comment appeared after the last alternate delimiter in a statement the alternate delimiter was not recognized.
- When a different tab was selected while running a statement the editor of the initial tab got the focus once its statement had finished
- When the connection failed, the DbExplorer was enabled although it wouldn't work anyway.
- Fixed some problems in the editor, when the scrollbars weren't updated correctly after deleting the entire text, or pasting new text over the existing
- The update of the database name in the connection info did not work with the SQL Server Desktop Engine and the MS JDBC driver
- When restoring window size & position make sure the coordinates fit into the current screen
- When inserting a new row into the result set, where the first column did not contain a value, the resulting INSERT statement was not correct
- Tabs with an index > 9 would still receive a shortcut and the index itself was not correct in the tab label
Build 61 (2003-11-02)
Enhancements
- The default type which is selected in the drop down of the table list panel in the DbExplorer can be defined now. If this property is set, the dropdown will default to this selection when the DbExplorer is opened.
- Changed Ctrl-K as the shortcut for "Close Tab" as Ctrl-W is already bound to "Optimize all column widths"
- Option to consolidate ("compress") log messages when executing a script
- The workspace can now be saved automatically whenever a SQL statement is executed. This can be enabled with workbench.workspace.autosave=true in workbench.settings (no GUI available yet)
- Workbench can now import the XML files generated by the SPOOL (=EXPORT) command. For this, the XML format had to be changed
- Tweaked the SQL formatter a little bit
- Disconnecting and connecting is now done in its own Thread, so that the gui doesn't lock up when the DBMS connection is slow
- Added meta data queries for Firebird DBMS (http://www.firebirdsql.org/)
- Memory consumption for SaveAs (HTML, XML, TXT, SQL) has been reduced.
- The table search tab in the DbExplorer now tries to guess if the user is doing a case-insesitive search on databases which are case sensitive.
- For The SQL formatter a max length for sub-SELECTs can be defined, where any sub-SELECT shorter then this maximum will not be reformatted.
Bug fixes
- When configuring several drivers with the same driver class (but different descriptions) the wrong jar file was used to retrieve the driver class.
- When copying data to the clipboard, data after a zero byte would be ignored
- When retrieving Oracle LOBs an exception was thrown by the driver when the Workbench tried to analyze the ResultSet metadata.
- Some SQL statements (like executing stored procedures or SHUTDOWN) could lead to an OutOfMemory error (this is due to a bug in most of the JDBC drivers. A workaround for retrieving the results in such cases prevents now the OutOfMemory error)
- when changing the number of decimal digits, the Workbench had to be restarted to pick up the new value
- "Workspace->Save As" now correctly assigns the workspace to the profile
- Deleting SQL Macros did not work properly
- The procedure panel in the DbExplorer was not displayed if the connection was changed, and if the DbExplorer was displayed as a tab.
- The DbExplorer did not retrieve itself when it was opened as a tab
Build 60 (2003-09-12)
Enhancements
- When the active database is changed in MS SQL Server with the command USE the connection info is now updated, so that the current database is displayed correctly
- Tweaked the SQL formatter a little bit
Bug fixes
- When running in batch mode, SQL scripts where no longer executed correctly
Build 59 (2003-09-10)
Enhancements
- Basic reformatting for SQL statments implemented. It is available under SQL->Reformat SQL
- The use of an animated gif icon can be now be disabled. In some cases this improves the CPU usage of SQL Workbench. This option is available from the option dialog (Tools->Options)
Bug fixes
- When assigning a workspace through Workspace -> Assign workspace the changes would not be saved to the profile
Build 58 (2003-09-06)
Enhancements
- The verifying of the JDBC URL via acceptsUrl() can be disabled by an entry in workbench.settings workbench.db.verifydriverurl=false
- Text can now be searched and replaced in the SQL Editor
- Tabs can now be added and closed with Ctrl-T and Ctrl-W (same shortcuts as Mozilla)
- Changed data in the DbExplorer could not be saved.
- The editor tab now indicates with an icon, if an external file is loaded.
- The DbExplorer now allows to create a script for several tables at once
Bug fixes
- Sometimes a wrong "Statement cancelled" would be printed in the message area
- After importing a text file, the "Save" button was not enabled
- "Clean Java Code" now replaces single line comments // with --
- Sometimes "Execute current" would fail with finding the "current" Statement and the whole text would be executed
- Tabs where an external file is loaded can no longer be renamed
- When saving a workspace, for any tab where an external file is loaded, the user is now prompted if the external file should be saved as well.
- When a profile is loaded with a link to an external file, and the file cannot be loaded the "normal" history is displayed.
- When an external file was modified, the user was not asked if the file should be saved, when closing the file
Build 57 (2003-08-12)
Enhancements
- Added Ctrl-B shortcut to jump to the location of the matching bracket
- Added F1 as the shortcut for Help
- When running SQL Workbench in batch mode, no profiles need to be defined in advance. The full connection details can now be defined on the commandline
- The result data can now be printed
Bug fixes
- When the default workspace has only one statement tab, and the DbExplorer was shown as a tab, the statement tab would disappear after loading the workspace (thanks for catching that Patrick!)
- The hyperlinks in the help window did not work
- Table sorting is now done based on the system's default locale
- The editor selection wasn't restored, if the selection started at the very first character of the text
- Oracle: The display of compilation errors for CREATE PROCEDURE did not work for some statements
Build 56 (2003-07-19)
Enhancements
- The help file is now included in Workbench.jar, thus the Help menu does not try to display the internet page any longer. Displaying the "plain" HTML file is a workaround, until the full JavaHelp is available
Build 55 (2003-07-19)
Enhancements
- DBMS_OUTPUT package can now be enabled automatically (Tools -> Options)
- It's now possible to define "Macros". A simple alias for a lengthy SQL statement. The macros are available under SQL/SQL Macros
- Support for driver specific JDBC properties (Extended Properties)
- Changed the "Stop" icon in the toolbar (That's for you Felix!)
Bug fixes
- The data for PUBLIC synonyms in Oracle would not be displayed
- Support for DBMS_OUTPUT package was broken
- When adding more then 9 tabs to the main window, tabs >= 10 are no longer assigned a shortcut (to make sure the shortcuts stay unique)
- When switching the connection profile while the DbExplorer was open, the DbExplorer would not work any longer when the DbExplorer window was re-opened
- The "Ignore DROP errors" attribute for a connection was always (implicitly) stored as enabled. Unfortunately the fix means that this attribute needs to be re-enabled for old profiles.
Build 54 (2003-07-05)
Enhancements
- The data tab in the DbExplorer is now using the same component as the SQL panel in the main window, thus the max row setting moved to the lower right corner
- The data in the data tab of the DbExplorer can now be changed and saved to the database.
- When spooling data to XML format, the date and number format can now specified with the spool command (same as with spool type=txt)
- Importing a file into the current table, can now be cancelled
- Updating the database can now be cancelled
- The application identifies itself now in the connection properties for Oracle and SQL Server (session output from v$session or sp_who2 will show SQL Workbench/J as the application name)
Bug fixes
- The "Spool data" menu item did not work, if SQL statement ended with a semicolon
- When the rowcount for a table is retrieved in the DbExplorer, an hourglass is now displayed next to the "Total:" label, to indicate that the SQL query is running.
- The table rowcount and data was retrieved too often in the DbExplorer
- If the connection URL for a driver is wrong, a more detailed error message is now displayed
- The "Separate connection for each tab" property was broken with the new Workspace features
- When closing the workbench while a statement which cannot be cancelled is running, the application can now be closed gracefully
Build 53 (2003-06-17)
Enhancements
- The table search now shows the SQL Statements executed in a separate editor pane as a refernce
Bug fixes
- When loading workspaces where a script file was open, they were not restored correctly
- When closing a tab in a workspace, the following tabs would not keep their correct names if they had a non standard name
- Fixed a bug when the alternate delimiter was set to / and the script contained C-Style comments with /* ... */
- Leading spaces where strippped of the SQL Statements when loaded from a workspace
- The table searcher now works with Oracle synonyms (the searcher replaces the synonym name with the real table name)
Build 52 (2003-06-11)
Enhancements
- When searching table in the DbExplorer the expression used for the column's name, can now be defined
Bug fixes
- Fixed a problem when loading workspaces. Newlines were added incorrectly
- When cancelling the Connect Dialog and then closing the main window, the default workspace would get overwritten with an empty workspace file.
Build 51 (2003-06-03)
Enhancements
- Improved Workspace handling: - A profile can now be connected to a workspace - Moved all Workspace menu items to a new main menu called Workspace - When using a Workspace, the tabs can be renamed - Text selection and cursor position is now stored in the workspace as well
- Data can now be exported to XML as well
- Improved SQL History handling (selection and cursor position are stored and maintained)
Bug fixes
- Worked around a bug in the PostgreSQL JDBC driver, where the columns for a for foreign key definition would appear twice
Build 50 (2003-05-19)
Enhancements
- The spool command now supports the following additional parameters for text export -dateformat -timestampformat -delimiter -quotechar -cleancr -decimal and the following additional parameters for SQL Export -charfunc -concat See the User's Manual for a detailed explanation on how the parameters work
Bug fixes
- Fixed a bug in the SQL parser, when a quote character occurred inside quotes (e.g. "'")
Build 49 (2003-05-16)
Bug fixes
- -script parameter was broken
Build 48 (2003-05-14)
Enhancements
- When importing text files, the number format and the quote character can now be specified
- When issuing the SHUTDOWN command for HSQLDB, the connection will be closed as well (because the HSQLDB engine is no longer available)
- The windows launcher now supports the following new command line parameters: -jdk=<dir> -debug -? (-help -h)
- When switching to the data tab in the DbExplorer, the retrieval of the data can be prevent if the shift button is hold down, when switching the tab. Even if "Automatic retrieve" is activated. The data display can also be configured to show a warning when retrieving more then a specific number of rows (independently of the max rows setting)
- Documented the DbExplorer's data tab (and its settings)
Bug fixes
- When saving changes to the database, JWorkbench would build all update statements in memory which causes trouble when importing large files
- When an operation generates an OutOfMemoryError, a message is displayed to the user.
- Fixed connection problems if the JDBC driver does not support getSchemaTerm(), getCatalogTerm() or getProductName()
- When closing the main window with the close button in the window title bar and profiles where changed, the application was exited even if Cancel was selected from the message box