Technical requirements
Runtime
- Java 21 or later (JRE is enough to run BroadSQL; a JDK is only needed to build it).
- Windows is the primary, fully supported platform. BroadSQL also runs on Linux, but Linux support currently has some known rough edges.
Databases supported out of the box
BroadSQL ships with JDBC drivers for five databases: no extra download needed:
| Database | Bundled driver version |
|---|---|
| H2 | 2.3.232 |
| PostgreSQL | 42.7.13 |
| Apache Derby (Embedded and Client) | 10.17.1.0 |
| HSQLDB | 2.7.4 |
| SQLite | 3.53.2.1 |
H2 is also the format BroadSQL itself uses for its own connections file (the CDF, $CDF), and one of the destination kinds the PULL command can write to (see below).
Adding another database type
BroadSQL can connect to any JDBC-compliant database beyond the five bundled drivers listed above. Drop the vendor's JDBC .jar into the drivers/ folder (or lib/) next to the BroadSQL installation, then use SHOW DRIVERS; to confirm it was found: it scans both folders and lists every JDBC driver there (name, version, vendor; add DETAILED for the JAR path and driver class name(s)).
If a database type's driver class cannot be found on the classpath, CONFIG and ADD CONNECTION still let it be selected but mark it (driver not found) in the type list, and CONNECT reports a clear error naming the missing driver class until the matching jar is added and BroadSQL is restarted.
Behavior that differs by database type
A handful of commands and internal checks are implemented only for specific database types rather than through a generic, driver-agnostic mechanism:
CHANGE PASSWORDonly knows the password-change syntax for Oracle, MySQL, PostgreSQL, H2, and HSQL. It reports "Operation not supported" for every other connected database type, regardless of whether that database has its own equivalent SQL statement.LINK TABLEonly works when the target connection is H2: it relies on H2's ownCREATE LINKED TABLEstatement, which has no equivalent in most other databases.- Rollback of DDL statements (
CREATE/ALTER/DROP/TRUNCATE) after an uncommitted change is handled correctly for a known list of database types (Derby, SQLite, PostgreSQL, SQL Server, Sybase, DB2, Informix, Firebird; databases where DDL does not force an implicit commit) and for Oracle/H2/HSQL (which BroadSQL can query directly for pending uncommitted transactions). For any other database type, BroadSQL falls back to tracking uncommitted-transaction state internally, which is less precise than asking the database directly.
None of this affects ordinary SELECT/INSERT/UPDATE/DELETE/DDL statements, table/column browsing (DESCR, SHOW TABLES, etc.), or export (EXPORT/DUMP): those work the same way regardless of database type, for any database reachable through a registered connection.
PULL (export to H2, a spreadsheet, or a text file)
PULL can read from any currently connected database type: there is no restriction on the source. Its destination is a local H2 database (AS H2), a tab of an Excel/ODS spreadsheet (AS XLSX/AS ODS), or a whole CSV/TXT file (AS CSV/AS TXT).
Regardless of destination, only "ordinary business data" column types can be pulled: text, integers, decimals, floating point, boolean, and date/time/timestamp columns. Large objects (BLOB/CLOB/ NCLOB), binary data, and structural or vendor-specific types (arrays, structs, XML, etc.) are rejected with an explicit error rather than silently dropped or corrupted, see PULL for the full command reference.
BroadSQL