What's new with BroadSQL 5.1.0 (2026-09-03)
BroadSQL 5.1.0 brings Java 21 and updated drivers and libraries, unified exports with PULL, improved connection management, and catalogs for SQL queries and scripts.
New features
Exporting and copying data
PULLexports a table/view, the last query (/), or a parenthesized query to H2, XLSX, ODS, CSV, TXT, JSON, Markdown, or HTML. It validates column types before writing and rejects unsupported BLOB, CLOB, binary, and structural columns. ExistingEXPORTandDUMPcommands remain supported. See Export.PULL <source> TO <name>.<table> AS H2reuses an existing H2 connection or creates and registers one, deriving the target table's columns and types from the query.MODE OVERWRITE(the default) recreates the table.MODE APPEND KEY(<column>)loads all rows initially, then inserts only rows whose key exceeds the target's current maximum, without updating or deleting existing rows.- Append mode supports joins, including outer joins. A key known to allow NULL is rejected; an indeterminate key, such as a computed column, is rejected unless
FORCEfollowsKEY(<column>). UseFORCEonly after checking that the key is safe. Outer joins always produce a caution because nullability cannot be verified reliably on every database. PULL <source> TO <name>.<tab> AS XLSXorAS ODSreplaces only the named spreadsheet tab, preserving other tabs. A maintainedQUERIEStab records each data tab's query, timestamp, source connection, and row count.- Flat file exports overwrite the whole file with appropriate quoting and escaping. JSON produces an array of row objects, preserving numeric precision where possible and using ISO-8601 dates/times; Markdown produces a table; HTML produces a table fragment. TXT is tab separated.
PULL ... AS CSVuses the optionalCsvSeparatorsetting inBroadSQL.iniorbroadsqlux.ini, defaulting to semicolon. EXPORTandDUMPsupport OpenDocument spreadsheets (.ods).DefaultFileFormatacceptsXLSX,ODS,CSV, orTXTand defaults toODS; it applies toEXPORTwithout an extension and toDUMPbelow its row count threshold. Their CSV output always uses commas, while TXT usesFieldsSeparator/SET SEPARATOR, independently ofCsvSeparator. See Application settings.
Queries, library, and scripts
//andSHOW QUERYdisplay the last executed query on one line without running it. On Windows,EDIT(aliasED) with no filename opens that query in Notepad; closing Notepad updates the saved query without executing it. Use/to run it.EDIT <fileName>remains available.FIND COLUMN <name>is the recommended name for finding tables with matching column names;SHOW COLUMN,SH COL, andSHCOLremain aliases.LIB LISTandLIB FIND <term>show a grid with file, description, landscape, tags, status, and modification time. FIND searches file contents. Metadata supports@description, repeatable@landscape(orALL),@tags,@alias, and informational@statusvalues (draft,stable,deprecated). SHOW, RUN, EDIT, and DEL accept aliases.- Library listing defaults to the current landscape, includes untagged entries, and supports
LIB LIST ALL. RUN and SHOW warn about landscape mismatches without blocking.LIB EDITon Windows opens Notepad and supplies a metadata skeleton for new entries.LIB LINTreports gaps in%Nparameters, unknown landscapes, and duplicate aliases; RUN warns about excess arguments. LIB DELconfirms and archives entries rather than deleting them.LIB UNDO/LIB RESTORE <name>recover them, andLIB LIST ARCHIVESlists them; there is no automatic purge.- The parallel
SCRIPT LIST/SHOW/RUN/FIND/EDIT/DEL/UNDO/RESTORE/LINTfamily provides the same catalog and recovery tools for the folder set by the newScriptsINI key.SCRIPT RUN <name>behaves like@<path>, without%Nsubstitution.
Connections and command handling
- The Windows
CONFIGscreen has a refreshed appearance and manages login scripts and landscapes. Login statements can be added, removed, reordered, and enabled or disabled. Renaming a landscape updates all referencing connections, including inactive ones; landscape choices refresh immediately. Deactivation is refused while any active or inactive connection references the landscape. CONFIGseparates active and inactive connections. Inactive entries appear greyed out and can only be reactivated or permanently deleted, not edited.REACTIVATE CONNECTION <id>restores an existing inactive connection and clearly identifies unknown IDs. Creating an ID already used by an inactive connection offers immediate reactivation.HARDDELand the inactive view's Delete action require prior deactivation.- Commands targeting inactive connections, including
CONNECT,PING/CHECK,SHOW CONNECTION,SHOW INSTANCES,COMPARE TABLE STRUCTURE, andLINK TABLE, now report their inactive state explicitly. - CTRL+C cancels a running
SELECT,EXPORT, orDUMPand returns to the prompt without closing the connection; partial export files are cleaned up. InterruptingCONNECTno longer leaves the connection in a corrupted state. A broken extension JAR is logged and skipped instead of preventing startup.
Problems solved
- Excel exports preserve timestamps and large BIGINT/DECIMAL values, render nonbinary NULL values as blank cells, handle invalid sheet name characters, and clean up temporary files.
- Text and CSV exports use UTF-8 and proper quoting for separators, quotes, and newlines. Empty values remain distinguishable from literal "null"; write errors are reported, and appending no longer repeats the header.
- New H2 connections registered by
PULLreceiveDefaultEnvironmentfrom the INI file (DEVby default) and the CDF's first registered instance, or an automatically createdDEFAULTinstance if none exists. - Login scripts retain their saved statement order and repeated statements. Cached type, instance, and landscape lists remove deactivated entries correctly.
DIRECT LOAD/DIRECT UPDATEmatch CSV headers to Derby's uppercase column names regardless of header casing.EVALcorrectly retries withFROM DUALwhere required.
Installing BroadSQL 5.1.0
Java 21 or later is required, replacing Java 11. See Installation.
Upgrading from previous releases
- Older H2 database files, including the Connections Definition File (CDF), may require migration. If opening one reports an unsupported file version, use H2's
SCRIPT/RUNSCRIPTcommands or the H2 Migration Tool. - To retain XLSX as the default export format, set
DefaultFileFormat=XLSXunder[General]in the INI file. For a configured text separator, use TXT rather than the now comma separatedEXPORT/DUMPCSV output. - Legacy
.xlsexport is removed; use.xlsx. MS Access.mdbexport remains available throughEXPORT/DUMPas a frozen legacy format and is not supported byPULL. CsvSeparatorandScriptsare documented in Application settings. AddingPULLdoes not require replacing existing export commands.
Known issues
- CTRL+C does not cancel a running
PULL. On some terminals, CTRL+C at an idle prompt can exit the application; useEXITfor a clean shutdown. PULL MODE MERGEis recognized but reports that it is not implemented. XLSX and ODS exports enforce a spreadsheet row limit, stop cleanly when reached, and report written and unwritten rows.EXPORT/DUMPstill use generic text for BLOB/CLOB/NCLOB columns. A NULL binary value appears as placeholder text in Excel, though ODS leaves it blank.PULLrejects unsupported column types before writing.CONFIGis Windows only; Linux administration may require direct SQL against the CDF.
BroadSQL