Skip to content

feat(plugin-mysql): add TiDB and Databend connection types - #5

Closed
J2TeamNNL wants to merge 11 commits into
mainfrom
cursor/tidb-databend-mysql-variants-135e
Closed

feat(plugin-mysql): add TiDB and Databend connection types#5
J2TeamNNL wants to merge 11 commits into
mainfrom
cursor/tidb-databend-mysql-variants-135e

Conversation

@J2TeamNNL

Copy link
Copy Markdown
Owner

Fixes TableProApp#1066
Fixes TableProApp#2514

Summary

Adds TiDB and Databend as first-class connection types on the bundled MySQL plugin, the same pattern as MariaDB. No new C client. Both speak the MySQL protocol, so they reuse MySQLPluginDriver through additionalDatabaseTypeIds.

TableProApp#2514 is the overlapping TiDB request (first-class type, icon, defaults, docs, and hiding features TiDB does not run). This PR does that. It does not add INFORMATION_SCHEMA.CLUSTER_* in the sidebar, and it does not sniff VERSION() to rewrite a MySQL connection as TiDB. Those would be a follow-up if they are still wanted after this type exists.

Defaults and capabilities

TiDB (tidb://, port 4000, relational):

  • System databases: information_schema, mysql, performance_schema, metrics_schema, sys
  • No triggers or stored routines
  • Foreign keys on; enforcement depends on the cluster
  • No AWS IAM, Cloud SQL Auth Proxy, or Unix socket
  • Structure fields match MySQL, including On Update
  • Server dashboard uses MySQLDashboardProvider
  • Compare & Sync pairs with MySQL and MariaDB
  • EXPLAIN uses the MySQL composite format

Databend (databend://, port 3307, analytical):

  • System databases: system, information_schema, INFORMATION_SCHEMA (default stays visible)
  • No foreign keys, triggers, or routines
  • No MySQL table-options UI and no server dashboard
  • No structure-sync pairing with MySQL
  • EXPLAIN stays plain text

Wiring

Curated PluginMetadataRegistry snapshots, reverseTypeIndex so pluginTypeId is still MySQL, Info.plist TableProProvidesDatabaseTypeIds, URL schemes in the app plist, Docker Compose image detection (pingcap/tidb, datafuselabs/databend), and importers (TablePlus, DBeaver, DataGrip, Beekeeper, Navicat for TiDB). iOS factory, intents, and widget icons are updated so the types round-trip there too.

Docs: docs/databases/tidb.mdx and databend.mdx, engine count 29. Screenshots are omitted on purpose; the form is the MySQL form, same as mariadb.mdx.

Tests

  • New: DatabaseTypeTiDBTests, DatabaseTypeDatabendTests, ConnectionURLParserTiDBTests, ConnectionURLParserDatabendTests
  • URL schemes (including SSH), Docker Compose images, registry ports, system databases, IAM, Cloud SQL Proxy, Unix socket, structure fields, compare family, SqlDialect.from, Navicat TIDB, DBeaver mappings, TablePlus type mapping

xcodebuild was not run here (Linux cloud agent, no Xcode). CI on macOS has to compile and run the suite.

Out of scope

Open in Web Open in Cursor 

@J2TeamNNL

Copy link
Copy Markdown
Owner Author

Closing: this was a fork-only PR and cannot close upstream issues.

The reviewable PR is TableProApp#2711

@J2TeamNNL J2TeamNNL closed this Sep 11, 2026
@J2TeamNNL J2TeamNNL reopened this Sep 11, 2026
@J2TeamNNL J2TeamNNL closed this Sep 11, 2026
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.

TiDB support feat: support databend and tidb

3 participants