What's new with BroadSQL 5.1.0 (2026-09-03)
New features
//shortcut: displays the last executed query collapsed onto a single line, without running it. Convenient for reading and copy-paste when it was originally typed or pasted across several lines.SHOW QUERYnow collapses its output the same way.CONFIG(Windows) now manages login scripts and landscapes, previously only editable with raw SQL against the CDF: a new "Login Scripts" tab lets you add, remove, reorder and enable/disable the SQL statements a connection runs automatically on connect; a new top-level "Landscapes" tab (list on the left, form on the right, same as "Connections") lets you create, rename and deactivate landscapes, with the connection form's Landscape list refreshing immediately. Renaming a landscape's ID updates every connection using it, active and inactive alike. A landscape cannot be deactivated (nor renamed while being deactivated) while any active connection still uses it: a connection must always stay attached to an active landscape.EDIT(Windows only), typed with no file name, now edits the last query in Notepad: closing Notepad replaces the last query with what was saved (without running it, use/to run it afterward).EDis now also a recognized synonym.EDIT <fileName>keeps working exactly as before.LIB LIST/newLIB FIND <term>(full text search across content, not just file names) now show a proper grid (file, description, landscape, tags, status, last modified) instead of a bare file name list. Every library entry can carry a short header of metadata:@description,@landscape(repeatable, orALL),@tags,@alias(a short nicknameLIB SHOW/LIB RUN/LIB EDIT/LIB DELaccept in place of the file name), and@status(draft/stable/deprecated, informational only).LIB LISTis scoped to the current connection's landscape by default (an untagged entry always shows;LIB LIST ALLshows every landscape);LIB RUN/LIB SHOWprint a warning, without refusing, when the entry's landscape doesn't match. NewLIB EDIT <name>(Windows only) opens an entry in Notepad and saves it back on close, pre-filled with a metadata skeleton for a new entry. NewLIB LINTreports non-contiguous%Nparameters, unknown landscape ids, and duplicate aliases.LIB DELnow asks for confirmation and archives the entry instead of deleting it, recoverable with newLIB UNDO/LIB RESTORE <name>(browse withLIB LIST ARCHIVES); there is no automatic purge.LIB RUNalso now reports (without blocking) when more parameters are given than a query actually uses. A new parallelSCRIPT LIST/SHOW/RUN/FIND/EDIT/DEL/UNDO/RESTORE/LINTcommand family brings the same catalog, metadata and safe delete tooling to a separate scripts folder (a newScriptskey inBroadSQL.ini);SCRIPT RUN <name>runs the resolved script exactly like@<path>already did, with no%Nparameter substitution.PULL ... MODE APPEND KEY(<column>)now accepts aJOINin the source query (any kind, includingLEFT/RIGHT/FULL OUTER). Before inserting, BroadSQL checks whether the key column could ever beNULL: a confirmed answer of yes is always refused, and an answer BroadSQL cannot determine (a computed key column, for example) is refused by default; addFORCEafterKEY(<column>)to proceed once you have checked yourself that the key is safe. Using an outer join always prints a caution note, since BroadSQL cannot always verify that case reliably on every database.FIND COLUMN <name>is a new, recommended keyword for the command previously only known asSHOW COLUMN(finds every table with a column name matching the given text);SHOW COLUMN/SH COL/SHCOLkeep working exactly as before.- Deactivated connections are no longer invisible:
CONFIGnow has separate "Active connections" and "Inactive connections" views (switch between them from the "Connections" menu), and an inactive connection is shown greyed out. It can only be reactivated or permanently deleted from that view, never edited in place. A newREACTIVATE CONNECTION <id>command brings a deactivated connection back to active from the command line, by ID, unchanged otherwise; it clearly reports when the ID does not exist at all. Trying toCONNECT,PING/CHECK,SHOW CONNECTION,SHOW INSTANCES,COMPARE TABLE STRUCTUREorLINK TABLEto an inactive connection now says so explicitly, instead of reporting it as simply not defined. Creating a connection under an ID that already belongs to an inactive one now offers to reactivate it. Permanently deleting a connection (HARDDEL, and the new "Delete" button inCONFIG's inactive view) now requires it to already be inactive. Deactivating a landscape is now refused while any connection, active or inactive, still references it.
Problems solved
PULL ... AS H2to a brand-new local H2 database no longer leaves the newly registered connection with no environment and no instance. The environment now comes fromDefaultEnvironmentin the INI file (DEVif absent), and the instance is taken from the CDF's first registered instance, or a newDEFAULTinstance created automatically if the CDF has none yet.- A connection's login script now runs its statements in the order they were saved instead of alphabetical order, and no longer silently drops a statement that happened to repeat verbatim.
- The CDF's cached type/instance/landscape lists (used to populate
CONFIG's combo boxes) now correctly drop an entry once it is deactivated, instead of only ever growing across reloads. - Loading a CSV file into a Derby table (
DIRECT LOAD/DIRECT UPDATE) no longer fails whenever the file's header casing doesn't already match Derby's own uppercase column names. EVALnow actually retries with the... FROM DUALform on a database that requires aFROMclause, instead of reporting an error after silently repeating the same failing query twice.ADD CONNECTION <id>no longer fails with a raw database error, after asking every wizard question, whenidhappened to match an already inactive connection; it now offers to reactivate that connection immediately, before asking anything else.
Installing BroadSQL 5.1.0
See Installation.
Upgrading from previous releases
No special steps required for this release.
Known issues
None known at release time.
BroadSQL