Add IRIS as a new agent-driven database type with:
- iris:// connection URL scheme (default port 1972, user _SYSTEM)
- JDBC driver via agent (com.intersystems.jdbc.IRISDriver)
- Oracle-compatible DDL dialect and schema-aware SQL dialect
- Capability sets: schema-aware, tree schema, diagram, search, table structure
Closes#368
Remove the hardcoded 12-type whitelist for the URL params form field so all
database types (including agent-driven ones like oceanbase-oracle) can set
custom URL parameters. Also append url_params to oceanbase-oracle connection
URLs in the Rust backend (matching the existing Postgres/Redshift pattern).
Add OS file association for database files (.db, .sqlite, .sqlite3, .duckdb)
so double-clicking them in Finder/Explorer automatically creates a connection.
If the same file path is already connected, prompts the user to switch instead.
Also fix 42 pre-existing clippy warnings in dbx-core (needless_borrow,
too_many_arguments, derivable_impls, manual_div_ceil, type_complexity, etc.).
Closes#527
JDBC connection URLs contain MySQL Connector/J-specific parameters
(useUnicode, characterEncoding, zeroDateTimeBehavior, useSSL,
serverTimezone, etc.) that mysql_async::Opts::from_url() does not
recognize, causing "Invalid MySQL URL: Unknown connection URL
parameter" errors. Filter these parameters out in mysql_async_url()
before passing the URL to the driver.
Fixes#524
- Increase MySQL pool max from 1 to 3 to avoid contention across tabs
- Merge get_columns serial queries into a single LEFT JOIN
- Clone pool handles before health checks in refresh_connections to reduce lock contention
- Skip COUNT(*) when result rows are fewer than the page size
Right-click a column header in the data grid to copy the ALTER TABLE
statement for that column, making it easy to replicate column definitions
across databases. Supports all major dialects (MySQL, Postgres, SQL Server,
Oracle, ClickHouse, SQLite, DuckDB, H2).
Closes#516
Execute COUNT query asynchronously after main query to show total
matching rows. Strip user-supplied LIMIT/OFFSET from count SQL so
the total reflects all rows, not just the limited page.
Add a `connect_timeout_secs` field to ConnectionConfig that allows users
to configure the database connection timeout per connection (1-300s,
default 5s). Previously all connections used a hardcoded 5-second timeout.
- Add connect_timeout_secs field with serde default and clamp logic
- Add parse_connect_timeout_with_fallback to honor URL params over config
- Pass user-configured timeout to all drivers (MySQL, Postgres, Redis,
MongoDB, ClickHouse, SQL Server, Elasticsearch) and TCP probe
- Add UI input in connection dialog SSH tab
- Add i18n keys for en/zh-CN/es
- Enable renameColumn, alterExistingColumn, alterType, alterNullability,
alterDefault, comment, and indexComment capabilities for SQL Server
- Implement build_sqlserver_existing_column_sql() with sp_rename for column
rename, ALTER TABLE ALTER COLUMN for type/nullability changes, and dynamic
SQL for default constraint management
- Add sp_addextendedproperty/sp_dropextendedproperty DDL generation for table,
column, and index comments
- Fetch table and column comments from sys.extended_properties via OUTER APPLY
in list_tables, list_objects, and get_columns SQL queries
- Fix table comment placeholder text (was showing column comment placeholder)
tokio_postgres's FromSql<String> only accepts built-in text-like OIDs and
rejects custom enum OIDs, causing all enum column values to display as
NULL. Add a PgAnyString adapter that accepts any type and reads raw bytes
as UTF-8, used as a last-resort fallback in pg_value_to_json and
pg_array_to_json_value.
Also bump shadcn-vue (2.6.2→2.7.3) and reka-ui (2.9.6→2.9.8).
Closes#485
- Run cargo fmt on duckdb_driver.rs
- Update test expectations for snippet→function type changes
- Fix snippet icon color test (emerald→violet)
- Fix error result message format test
- Fix keyword suggestion test to handle snippet boost priority
- frontend: use e.message instead of String(e) in toErrorResult to avoid
"Error: " prefix for HTTP-mode errors, matching connectionErrorMessage
- frontend: apply same fix to MongoDocBrowser error display
- backend(postgres): use pg_error_to_string across all query execution
paths (execute, execute_batch, copy_out, copy_in) to extract DbError
details instead of generic transport-layer errors
Other databases (MySQL, SQL Server, SQLite, DuckDB) already include
server-level error details in their native Error::to_string().