17 Commits
Author SHA1 Message Date
t8y2 8b8c0b8075 feat(cache): add built-in InterSystems Caché agent driver
Closes #7972
2026-09-04 23:40:07 +08:00
wangfengxiang 24642a6bd5 feat(argo): dedicated argo-go agent and PL/SQL splitter 2026-09-03 02:09:49 +08:00
Frost f494f90c30 feat(spanner): add Google Cloud Spanner support 2026-08-20 16:33:09 +08:00
SCSTC 634bb9a7d0 feat(ignite3): add Apache Ignite 3 support 2026-08-20 02:21:55 +08:00
SCSTC 703c6bc81f feat(ignite): add Apache Ignite 2.x support 2026-08-19 02:04:13 +08:00
Elias ea9a27ce11 feat(xugu): expose public synonyms in an isolated scope 2026-08-12 18:24:01 +08:00
Andrew 26bb10dad0 fix(gaussdb): support M-mode type metadata 2026-08-12 02:05:54 +08:00
t8y2 27f3ea7287 feat(iotdb): replace JDBC agent with native Go driver 2026-08-10 13:53:43 +08:00
t8y2 f9e49bed1c feat(neo4j): replace JDBC agent with native Go driver 2026-08-04 20:31:58 +08:00
t8y2 d38fe5b173 feat(tdengine): replace Java agent with native Rust driver 2026-08-04 17:42:05 +08:00
t8y2 66cec0f5d3 fix(ci): align Cassandra coverage matrix key 2026-08-04 03:36:47 +08:00
t8y2 5c2dfde334 feat(cassandra): add native Go agent 2026-08-04 00:40:20 +08:00
t8y2 dae150ea74 feat(vastbase): replace JDBC agent with native Go driver 2026-08-03 23:09:11 +08:00
t8y2 6eb71ae9fe fix(agents): remove legacy Kingbase coverage entry 2026-07-24 11:39:39 +08:00
t8y2 29f493f7da fix(ci): update MCP MSRV and metadata coverage 2026-07-20 22:05:55 +08:00
jischeng c3893bf314 feat(spark): add Apache Spark database driver with catalog support
* feat(spark): add Apache Spark database driver

Spark Thrift Server speaks the HiveServer2 protocol, so the Spark driver
reuses the hive-jdbc agent runtime. Registers spark (agentKey=spark,
defaultPort=10015) across the manifest, DatabaseType enum, agent catalog,
SQL dialects, connection dialog, and a SparkAgent built on AbstractJdbcAgent.

* feat(spark): add catalog support and official logo

SparkAgent now supports Spark 3.4+ multi-catalog (Paimon, Lance, Iceberg)
via catalog=<name> in url_params, mirroring the StarRocks catalog flow:
- afterConnect switches to the configured catalog via USE <catalog>
- listDatabases returns the catalog name when SHOW DATABASES is empty
  (catalogs like Lance expose tables at the catalog root with no databases)
- listTables uses SHOW TABLES IN <catalog>[.<schema>] uniformly, working
  for both catalog-root tables (Lance) and catalog.schema tables (Paimon)
- setSchemaSQL qualifies USE with the catalog to prevent resetting to
  spark_catalog on schema switches
- buildJdbcUrl omits database from the URL path

Also replaces the placeholder lightning icon with the official Apache Spark
logo (spark-logo.png from spark.apache.org).

* fix(spark): use catalog-qualified DESCRIBE for column retrieval

getColumnsFromDescribe used USE <schema> + DESCRIBE <table>, which
generated USE `catalog`.`catalog` when the sidebar passed the catalog
name as the schema (Lance case where the catalog is the only node).
This failed and fell back to JDBC metadata which also returned nothing,
resulting in an empty DDL (CREATE TABLE ... ()).

Now uses DESCRIBE `catalog`.`table` directly when a catalog is
configured, bypassing USE entirely. Also fixes setSchemaSQL to treat
schema == catalog as catalog-only (no .schema suffix).

* fix(ci): add spark to metadata coverage matrix and BRIDGE_REQUIRED_TYPES

- agents/metadata-constraint-coverage.tsv: register spark as
  intentional-fallback (SHOW TABLES/SHOW DATABASES, like Hive/TDengine)
- packages/node-core/src/diagnostics.ts: add spark to
  BRIDGE_REQUIRED_TYPES (mcpMode=bridge, matches manifest)

* fix(ci): add spark to DBX_CONNECTION_TYPE_DESCRIPTION in mcp-server

The driver-manifest test asserts every manifest dbType appears in the
MCP server's connection type description string.
2026-07-07 14:36:22 +08:00
t8y2 e74782f651 feat(metadata): optimize agent metadata loading 2026-07-05 12:09:24 +08:00