Skip to content

feat: 30+ SQL databases via protocol aliasing, JDBC bridge, and native drivers - #61

Merged
Blankll merged 3 commits into
masterfrom
feat/multi-database-expansion
Jun 13, 2026
Merged

feat: 30+ SQL databases via protocol aliasing, JDBC bridge, and native drivers#61
Blankll merged 3 commits into
masterfrom
feat/multi-database-expansion

Conversation

@Blankll

@Blankll Blankll commented Jun 13, 2026

Copy link
Copy Markdown
Member

No description provided.

Blankll added 3 commits June 13, 2026 13:24
Architecture:
- DatabaseType enum expanded from 8 to 34 variants
- resolve_effective_type() mapper with protocol aliasing
  (PG-family, MySQL-family route to existing adapters)
- DatabaseAdapter trait methods made optional (default Unsupported)

New adapters:
- DuckDbAdapter: bundled embedded analytics via duckdb crate
- ClickHouseAdapter: HTTP protocol via reqwest
- OdbcAdapter: ODBC bridge with DM8 COMPATIBLE_MODE auto-detection
  and OceanBase mode probing
- HttpSqlAdapter: Trino/Presto support via HTTP
- OracleAdapter: pure-Rust oracle-rs (optional feature gate)

Dispatch:
- state.rs ActiveConnection: 4 -> 8 variants
- All command files updated with new match arms
- helpers.rs rewritten for strategy-based dispatch
- transfer.rs + capabilities/sql.rs: wildcard arms added

Dependencies:
- duckdb (optional, feature-gated)
- odbc (v0.17, system ODBC linking)
- oracle-rs (optional, feature-gated)

Verification: cargo check 0 errors, strategy tests 5/5 pass
… default-on

- Create oracle.rs adapter (719 lines, feature-gated)
- Add oracle module to mod.rs with #[cfg(feature = oracle)]
- Make duckdb feature default-on in Cargo.toml
- Expand frontend DatabaseType enum to 30+ types
- Update connectionStore.ts with full backend mapping
- Update useDatabaseIcon.ts with fallback icons for all types
- Update ServerFormDialog.vue defaultPorts for all DBs
- Update dataStudioStore.ts databaseType union

Verification: cargo check 0 errors, strategy tests 5/5 pass
…ration

- Remove odbc crate + OdbcAdapter (828 lines)
- Add jdbc_bridge Rust module (JSON-RPC over stdin/stdout to Java subprocess)
- Add jdbc-bridge/ Java project (HikariCP + Jackson, fat JAR)
- Auto-download JRE + bridge JAR + driver JARs on first connect
- No system ODBC drivers nor system Java required
- Fix Oracle routing to native oracle-rs adapter
- Export dbTypeToBackend from store with full test coverage (6 tests)
- Restore truncated defineStore in connectionStore.ts
- Expand ServerFormDialog dropdown from 5 to 31 database types
- Add DuckDB file-based mode alongside SQLite
- Add 26 bilingual i18n labels (EN + ZH, 信创 bilingual)
- Fix SSL config section to cover all DatabaseType variants
- Update all docstrings: ODBC bridge → JDBC bridge

Verification: cargo check 0 errors, cargo test 121/121, jest 282/282, vue-tsc clean, eslint 0 errors
@Blankll Blankll changed the title feat: multi-database expansion — 30+ SQL databases via protocol aliasing, ODBC bridge, and native drivers feat: 30+ SQL databases via protocol aliasing, JDBC bridge, and native drivers Jun 13, 2026
@Blankll
Blankll merged commit 387a65d into master Jun 13, 2026
0 of 3 checks passed
@Blankll
Blankll deleted the feat/multi-database-expansion branch June 13, 2026 08:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant