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 QUERY now 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). ED is now also a recognized synonym. EDIT <fileName> keeps working exactly as before.
  • LIB LIST/new LIB 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, or ALL), @tags, @alias (a short nickname LIB SHOW/LIB RUN/LIB EDIT/LIB DEL accept in place of the file name), and @status (draft/stable/deprecated, informational only). LIB LIST is scoped to the current connection's landscape by default (an untagged entry always shows; LIB LIST ALL shows every landscape); LIB RUN/LIB SHOW print a warning, without refusing, when the entry's landscape doesn't match. New LIB 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. New LIB LINT reports non-contiguous %N parameters, unknown landscape ids, and duplicate aliases. LIB DEL now asks for confirmation and archives the entry instead of deleting it, recoverable with new LIB UNDO/LIB RESTORE <name> (browse with LIB LIST ARCHIVES); there is no automatic purge. LIB RUN also now reports (without blocking) when more parameters are given than a query actually uses. A new parallel SCRIPT LIST/SHOW/RUN/FIND/EDIT/DEL/UNDO/RESTORE/LINT command family brings the same catalog, metadata and safe delete tooling to a separate scripts folder (a new Scripts key in BroadSQL.ini); SCRIPT RUN <name> runs the resolved script exactly like @<path> already did, with no %N parameter substitution.
  • PULL ... MODE APPEND KEY(<column>) now accepts a JOIN in the source query (any kind, including LEFT/RIGHT/FULL OUTER). Before inserting, BroadSQL checks whether the key column could ever be NULL: a confirmed answer of yes is always refused, and an answer BroadSQL cannot determine (a computed key column, for example) is refused by default; add FORCE after KEY(<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 as SHOW COLUMN (finds every table with a column name matching the given text); SHOW COLUMN/SH COL/SHCOL keep working exactly as before.
  • Deactivated connections are no longer invisible: CONFIG now 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 new REACTIVATE 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 to CONNECT, PING/CHECK, SHOW CONNECTION, SHOW INSTANCES, COMPARE TABLE STRUCTURE or LINK TABLE to 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 in CONFIG'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 H2 to a brand-new local H2 database no longer leaves the newly registered connection with no environment and no instance. The environment now comes from DefaultEnvironment in the INI file (DEV if absent), and the instance is taken from the CDF's first registered instance, or a new DEFAULT instance 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.
  • EVAL now actually retries with the ... FROM DUAL form on a database that requires a FROM clause, 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, when id happened 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.