Repository navigation
feat(starrocks): add a registry driver that browses catalogs and databases - #3939
Open
vbabenkoru wants to merge 8 commits into
Open
vbabenkoru wants to merge 8 commits into
vbabenkoru wants to merge 8 commits into
Conversation
StarRocks type on MySQL plugin. Catalogs = database level (SHOW CATALOGS / SET CATALOG), catalog dbs = schema level (USE). Database field takes catalog.database; bare name tried as catalog, else db in default_catalog. Probe SELECT current_version() confirms server. MySQL catalog reads (indexes, FKs, routines, triggers, status) skipped. Co-authored-by: Cursor <cursoragent@cursor.com>
StarRocks labels JSON/VARIANT results charset 63; grid showed hex. Binary-labelled strings now decode as UTF-8 text, else bytes. Icon: official StarRocks logo (MIT, log-z/logos), template rendering, brand color #01808F. Co-authored-by: Cursor <cursoragent@cursor.com>
…ed list, tighten comments Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
vbabenkoru
marked this pull request as ready for review
October 31, 2026 14:52
Columns come from information_schema.columns, which names each key model and leaves out the _file and _pos an Iceberg table's SHOW FULL COLUMNS adds. EXPLAIN offers LOGICAL, VERBOSE and COSTS, and drops ANALYZE, whose report is colored with terminal escape codes. Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
…es in one statement
This branch has not been deployed
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.
Docs: TableProApp/docs#145.
Summary
StarRocksDriverPlugin, compiled from the MySQL driver's sources the way KingbaseES is from PostgreSQL's. The bundled MySQL plugin does not list it.SHOW CATALOGS), a catalog's databases the schema level (SHOW DATABASES).catalog.database. A bare name is a database indefault_catalog,catalog.a catalog alone.authenticationIsDatabaseScoped), so the browsed catalog never lands in it.USE `catalog.database`orSET CATALOG. Re-entering the same catalog keeps the selected database.SELECT current_version().information_schema.columns, which leaves out Iceberg's_fileand_pos.PRI,UNIandAGGcolumns are the row key,DUPis not. Defaults read as SQL:'abc',0,CURRENT_TIMESTAMP,NULL.default_catalogonly.SHOW TABLE STATUSparser for both engines: a negative value is unknown, and StarRocks has no index length.LOGICAL,VERBOSEandCOSTS.query_timeoutis capped at 259200 seconds.starrocks://URLs parse and copy..bySchemaand.hierarchicalSchemaalike, and saves it as the last schema.Test plan
SET CATALOGclears the database even for the same catalog.USE `ice.idb`enters both;USE `ice`.`idb`fails with 5501.ice,SHOW TABLE STATUS FROM idbreturnsdefault_catalog.idb's tables, andinformation_schema.materialized_viewsfails with 5502.DELETEon a duplicate key table reports 0 rows and removes the row. A primary key table reports the real count.DELETE ... LIMITis a syntax error.f = 1.1misses a FLOAT holding 1.1;CONCAT(f) = '1.1'finds it. DOUBLE and JSON compare by value.CAST AS VARBINARYas BLOB with charset 63.SYSDATE()andUTC_DATE()fail, so StarRocks gets no cell expression list.KILL QUERYanswers 1317.ice.idbconnects intoice/idb; catalogs and the catalog's databases list; the Iceberg table lists without_fileand_posand with no table status; re-enteringicekeepsidb;default_catalogleaves no database; the materialized view lists as one and opens onCREATE MATERIALIZED VIEW; JSON reads as text and VARBINARY as bytes; a bareidblands indefault_catalog; a 0 timeout sets 259200.StarRocksCatalogTests,PluginMetadataRegistryStarRocksTests, and inDatabaseManagerDatabaseSwitchTeststhe saved schema on a catalog switch and the reconnect restore order.MySQLTableStatusRowTests,MySQLProtocolVariantParityTests,PluginMetadataRegistryTypeCountTests,SwitchDatabaseReconnectFailureTests,SQLDDLFallbackPolicyTests,DatabaseTypeTests, the database switch, schema switch, session lane and scoped driver suites (73 cases) and the TableProCore type, grammar and vocabulary tests pass.verify.sh buildpasses. AllPlugins stopped at DamengDriver, whose Rust library is not built on this Mac;StarRocksDriverPluginandMySQLDriverlinked and load withverify-plugin-loads.sh.TableProModelsTests.DatabaseTypeTestsexpectsDatabaseType.starrocks.pluginTypeId == "StarRocks".Needs the maintainer