Skip to content

Expand SQL database coverage — wire-protocol compat, JDBC bridge, and new native adapters #79

@Blankll

Description

@Blankll

Motivation

Many SQL databases speak PostgreSQL or MySQL wire protocol, meaning they can reuse our existing adapters with minimal effort.
Others have JDBC drivers and can leverage our JdbcBridgeAdapter.
A few would benefit from dedicated native adapters.

Our current architecture already supports:

  • Native adapters: PostgreSQL, MySQL, SQL Server, SQLite, DuckDB, ClickHouse, Oracle (gated)
  • JDBC bridge: DB2, H2, Snowflake, DM8Oracle, XuguDB, GBase8a
  • HTTP bridge: Trino, Presto
  • PG-wire compat (→ PostgresAdapter): CockroachDB, Redshift, YugabyteDB, TimescaleDB, KingbaseES, GaussDB, HighGo, UXDB, OpenGauss, GBase8c
  • MySQL-wire compat (→ MySQLAdapter): MariaDB, TiDB, OceanBase, TDSQL, PolarDB, DM8

Dependency Notice

Task 2 depends on issue #70 — JDBC driver management infrastructure.

Issue #70 defines how JDBC drivers are resolved, downloaded, and managed:

  • Built-in driver registry with Maven coordinates (no user-provided JARs)
  • Managed JRE auto-downloaded by SQLKit (no user Java installation required)
  • Automatic driver version fallback for legacy databases
  • Settings page for viewing/removing cached drivers

Task 2 databases cannot be added until this infrastructure is in place, because each JDBC database needs a registered driver entry with verifiable Maven coordinates.


Work Breakdown

Task 1: Wire-protocol compatible databases (trivial)

Add databases that reuse existing PostgreSQL or MySQL adapters via the strategy system.
No Rust adapter code needed — just enum variants, routing, icons, and frontend entries.

  • Apache Doris (MySQL wire)
  • SelectDB (MySQL wire, Doris fork)
  • StarRocks (MySQL wire)
  • Databend (MySQL wire)
  • QuestDB (PG wire / HTTP)
  • Vastbase / 海量数据库 (PG wire)
  • GoldenDB (MySQL wire)
  • Manticore Search (MySQL wire)
  • YashanDB / 崖山 (PG wire)

Task 2: JDBC bridge databases (low-medium effort, blocked on #70)

Add databases that have well-known JDBC drivers — reuse our existing JdbcBridgeAdapter infrastructure.

Task 3: New dedicated adapters (medium-high effort)

Databases where we should build dedicated native adapters or leverage existing infrastructure patterns.

  • Firebird — Has mature Rust crate firebird-rs. Could build a native adapter similar to MySQL/Postgres.
  • RQLite — Distributed SQLite with HTTP API. Fits our HttpSqlAdapter pattern.
  • Turso (libsql) — Edge SQL database with HTTP API. Fits HttpSqlAdapter pattern.
  • TDengine — Time-series SQL database. Has JDBC but also a native REST API.

Acceptance Criteria

  • Each database type is selectable in the connection form dropdown
  • Test connection works for verified databases
  • Basic query execution (SELECT) works
  • Metadata browsing (tables, columns) works (where supported by the backend)
  • Each new db type has an icon in the UI
  • Strategy routing correctly maps wire-protocol compat DBs to their native adapters
  • JDBC bridge databases use drivers from the built-in registry only (no user-provided JARs)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions