feat: 30+ SQL databases via protocol aliasing, JDBC bridge, and native drivers - #61
Merged
Conversation
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
32 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.