On this page
What's new with BroadSQL 5.4.0 (2026-10-02)
New features
- Editor: Database Group and Environment are chosen in the Metadata tab from a searchable list of the defined values (check boxes, chips, keyboard support), with compatible values listed first
- Scripts: SQL scripting variables with LET (literal, copy, or one-row one-column query), used in SQL as ${name} and bound as typed parameters; SHOW SCRIPT VARIABLES lists them
- Scripts: named script arguments (@script name=value, LIB RUN script name=value) and @params metadata for required arguments
- Breaking change, Scripts: positional parameters %1 to %9 are removed; a positional call fails with a migration message and %1 in a Script is ordinary text
- Scripts: ECHO 'message', ON ERROR STOP|CONTINUE and OUTPUT QUIET|NORMAL
- Scripts: a final status line (SUCCESS, COMPLETED_WITH_ERRORS, FAILED, CANCELLED) with a run identifier; CTRL+C cancels the whole Script run
- Transactions: the rollback that follows a failed SQL statement is now reported when it discards pending changes, and a Script ending with uncommitted changes is followed by a notice
- DUMP/PULL: ${name} variables in the query in parentheses; DUMP LIB and DUMP @ accept named arguments and export only after a SUCCESS run
- BroadSQL Editor: Run asks for the arguments declared by @params and shows the Script's status
- BroadSQL Editor: New Script opens an unsaved tab named on its first Save; EDIT and LIB EDIT without a name open on such a new Script
- BroadSQL Editor: several Scripts and folders move together by drag and drop, checked entirely before anything moves; the tree follows the active tab
- BroadSQL Editor: Validate, the Validation tab, Save with Comment and View > Refresh are removed; Refresh is in the Scripts pane's right click menu
- BroadSQL Editor: three panes (Scripts, editor, Metadata/Validation/Output on the right), an icon toolbar, Path and Last modified in the Metadata tab
- BroadSQL Editor: the Scripts tree lists folders first, has folder and Script icons, and moves Scripts and folders by drag and drop; open tabs follow a moved Script
- BroadSQL Editor: right click on a tab closes other tabs, tabs to the right or left, or all tabs, always asking about unsaved changes
- BroadSQL Editor: Copy Library Path, Copy Full Path, Copy CLI Command, and Send to CLI, which writes @script; on the prompt without running it
- SHOW TABLES lists tables only; SHOW VIEWS also lists materialized views; LOAD refuses a view
- Time-zone-aware timestamps are exported the same way on every computer: offset kept in text formats and H2, native UTC date/time cells in XLSX and ODS
- BroadSQL includes the WORLD sample database: CONNECT WORLD; works on a fresh installation (samples/WorldDB.mv.db, user sa, no password)
- The launchers start BroadSQL from the installation folder, so they work from any current folder
- DESCR lists the columns in table order, and shows precision,scale for DECIMAL and NUMERIC columns
- TAB completes table names after SHOW PK, ALL, CNT and COMPARE TABLE STRUCTURE too, and after a schema and a dot (sales.o<TAB>) at every table position
- Query results have the same bordered table format as BroadSQL's own tables; SHOW DRIVERS and SYNC TYPE CATALOG use it too
- DUMP @<script> exports the final result of a Scripts Library script, exactly as DUMP LIB <script>, with the same TO and AS clauses
- HELP SHORTCUTS lists the keyboard shortcuts of the console, with or without a connection
- HELP shows the command categories and the forms of HELP as tables that follow the window width, without the banner; HELP ALL is unchanged
- ENV <environment> switches to the connection of that Environment in the current connection's Database Group; ENVT and CONNECT ENVIRONMENT are aliases, and HELP ENV shows the command (the Environments category is now HELP ENVS)
- DUMP is the one export command: DUMP <table>, DUMP (<query>), DUMP / (the result on screen, never run again), DUMP LIB <script> (a Script's final result) and DUMP API RESULT, with an optional TO <name> and AS CSV, TEXT, JSON, XLSX, ODS, H2, MD or HTML; without AS, the DefaultFileFormat setting applies. PULL remains an alias with the same syntax
- AS CSV uses the CsvSeparator setting (COMMA or SEMICOLON, default SEMICOLON); AS TEXT always uses a tab
- SHOW FK, SHOW REFERENCES and SHOW INDEXES show the foreign keys, incoming references and indexes of a table on any JDBC database, and FIND FK and FIND INDEX find foreign keys and indexes by part of their name. See Exploring a database
- Syntax highlighting, colored messages and a colored prompt (with a distinct style for a Production Environment), chosen with the color setting (AUTO, ON, OFF) and the theme setting (default-dark, default-light, classic, high-contrast-dark, high-contrast-light, mono, none)
- Result tables follow the width of the terminal window (displaymode setting: AUTO, COMPACT, NORMAL, WIDE); values are shortened on screen only, never in exports or in <@last:...>
- TAB also completes table names after DESCR and DUMP (and DUMP's sources, TO, AS and formats), inactive connections after REACTIVATE CONNECTION, archived Scripts after LIB RESTORE, API IDs after SHOW API ENVIRONMENTS, endpoints after SHOW ENDPOINT, and file and folder paths after @, LOAD, IMPORT API BRUNO and inside <@...>
- Esc cancels the whole statement being typed, including its earlier lines, and Ctrl+U deletes from the cursor to the beginning of the line. All keyboard shortcuts are listed on the new Interactive console page
- SHOW EXTENSION ERRORS lists the extension and command loading failures recorded at startup; an extension command whose keyword conflicts with an existing command is rejected and listed there
- The JLine console is the standard console: activatejline is ON when the setting is missing
- A missing or invalid setting in BroadSQL.ini no longer stops BroadSQL from starting: a one-time message names the setting and the default used
- SHOW AUTOCOMMIT is the command's name; AUTOCOMMIT remains an alias
- A connection can no longer be saved with a reference to an inactive Database Group or Environment
Problems solved
- EXIT disconnects once: no more "Could not determine whether uncommitted changes are pending" warning, "object is already closed" error or second "Disconnected from" line when leaving BroadSQL
- BroadSQL Editor: editing the Metadata tab changes only the edited metadata line; comments, blank lines and order are kept, and Save updates the Metadata tab from the text
- BroadSQL Editor: Run no longer fails with a NullPointerException when IsLogActivated is on, shows plain text in Output (no color codes) and is available for clean Scripts
- ALL, CNT, DUMP and PULL read exactly the table named, quoted for the database: a mixed-case name, a name with spaces or a reserved word no longer reads another table
- DUMP ... MODE APPEND KEY keeps the meaning of a source condition with OR and no longer appends rows twice; a key named by its select-list alias works on later runs
- Disconnecting from HSQLDB with Autocommit off works; closing a connection always rolls back pending changes, and warns when the database cannot report them
- A SELECT showing NaN or Infinity values is displayed and keeps pending changes; DUMP / refuses such a result clearly
- LINK TABLE requires an H2 current connection and can link from any database; the password never appears in its messages
- The Linux launcher broadsql.sh starts BroadSQL without editing: Java 21 from JAVA_HOME or the PATH, from any folder, and the ZIP keeps it executable
- DESCR and SHOW PK resolve table names exactly, like SHOW FK, SHOW REFERENCES and SHOW INDEXES: DESCR TRY no longer prints an empty table when COUNTRY exists, SHOW PK country works
- New Oracle connections can be saved: the shipped Oracle type has its driver (oracle.jdbc.OracleDriver), and the Derby types name the drivers of the included Derby
- DUMP keeps the fractional seconds of times and timestamps in CSV, TEXT, JSON, MD and HTML
- Every command alias works: DESCRIBE, FIND INDEXES, FIND REFERENCES and JSEV no longer read their own name as an argument
- A cancelled or failed EDIT CONNECTION no longer changes the connection used by CONNECT
- Connection IDs are checked before saving: at most 15 characters and not case-sensitive, with a clear message instead of a database error
- Extension commands are loaded on Linux too
- EDIT CONNECTION and DUPLICATE CONNECTION no longer print the current password; it is shown as ********
- CONFIG now refuses a connection whose password and repeated password differ
- Saving a new connection (CONFIG, ADD CONNECTION, DUPLICATE CONNECTION, DUMP ... AS H2) no longer fails with "NULL not allowed for column DRIVER": the connection is saved with its type's JDBC driver
- The banners of the shipped launchers and configuration files are aligned whatever the release number
- The API Client category description in HELP no longer shows internal wording
- Accented characters in a Script saved in the Windows ANSI encoding, and in <@file> lists, are no longer corrupted: text files are read as UTF-8, or as Windows-1252 when they are not valid UTF-8, whatever the system settings
- <@...> list sources: a <@ inside a quoted string or a comment is no longer taken as a list source, an unclosed <@ is reported instead of failing with an internal error, and spaces around the file name no longer make BroadSQL hang
- Windows paths with single backslashes work in <@file>, and TAB completion no longer drops or doubles backslashes in paths or doubles the quotes of a name you started with a quote
Installing BroadSQL 5.4.0
See Installation.
Upgrading from previous releases
- EXPORT and SET SEPARATOR are no longer documented and existing scripts still run; use DUMP (see Export, Scripts from earlier releases). MS Access (.mdb) output remains available only through EXPORT
- DUMP <table> now writes through the shared export writers: a .csv file uses CsvSeparator (it was always a comma), .xlsx and .ods files gain a QUERIES worksheet, and LOB and binary columns are rejected
- New settings color, theme and displaymode: an existing BroadSQL.ini without them gets the defaults (AUTO, default-dark, AUTO) and a startup message; set theme=none to keep the previous appearance
Known issues
None known at release time.
BroadSQL