Commit Graph

1116 Commits

Author SHA1 Message Date
onenewcode 1b13d2176b
fix(metadata): unify enum column metadata 2026-07-08 21:02:53 +08:00
miracle c32d0b7d6e
fix(duckdb): close worker process reliably 2026-07-08 20:31:02 +08:00
zipg 33b4fc1dac
feat(driver): clear download cache 2026-07-08 20:21:05 +08:00
lexmin0412 ac4b98c97c
feat(ai): add general action mode 2026-07-08 19:31:19 +08:00
Guoyu Su dafa3e0f79
fix(mysql): strip allowMultiQueries URL param (#2917) 2026-07-08 19:30:55 +08:00
zipg 0329d9088e
feat(dameng): support schema creation 2026-07-08 19:25:20 +08:00
二丫讲梵 fb919efe0a
fix(mcp): require auth for web backend access 2026-07-08 19:23:34 +08:00
Abeautifulsnow ffc0279352
fix(ai): make stop button actually cancel the agent stream
The stop button called aiCancelStream -> notify_one(), but the four
stream_*_with_tools SSE loops only `break`ed and returned Ok(token_usage)
when cancelled. run_agent_loop treated that as a normal completed turn and
kept going (often into contract-repair or the next turn), so isGenerating
stayed true and a single click did not stop the agent.

Return Err(AGENT_CANCELLED_ERROR) from the cancel branch so the existing
Err-cancel match arm sets loop_exit = Cancelled and stops the loop cleanly,
preserving whatever was streamed so far.

Additional:
- Promote AGENT_CANCELLED_ERROR to a shared `pub const` in ai.rs; agent_loop
  now references ai::AGENT_CANCELLED_ERROR.
- Check cancellation before executing requested tools, so a stop landing
  between stream-end and tool execution is honored.
- Wire cancellation into the text-only fallback (previously `_cancelled`,
  ignored) via tokio::select! racing ai::complete against cancelled.notified().

Known limitation left: in-flight tool execution (e.g. execute_query) is
still not interruptible mid-call.
2026-07-08 18:44:13 +08:00
gggaiitx d0bfdb78ac
fix(sqlserver): cast sql_variant result columns 2026-07-08 18:07:24 +08:00
LRcoding ae627de320
fix(core): preserve mysql numeric export literals 2026-07-08 17:31:29 +08:00
zipg 9319efb9e5
fix(sqlserver): include IDENTITY in table DDL 2026-07-08 16:09:33 +08:00
zipg 2dc8609495
fix(mysql): skip MySQL-only setup for compatible engines 2026-07-08 15:37:49 +08:00
gggaiitx 73bd133886
fix(sqlserver): strip display width from float type in DDL generation
* fix(sqlserver): strip scale from float type while preserving mantissa bits

* fix: add missing agent_java_options field in test ConnectionConfig
2026-07-08 15:31:49 +08:00
gggaiitx 651c7b8db3
fix(vastbase): tolerate metadata row type mismatches 2026-07-08 14:57:14 +08:00
zipg 3a35f5b911
fix(oceanbase): update default connection port 2026-07-08 13:31:45 +08:00
t8y2 2929b1c035 feat(hive): add Kerberos connection options 2026-07-08 13:23:21 +08:00
t8y2 15d4dc6e2e fix(sqlserver): omit display width for integer types 2026-07-08 11:05:45 +08:00
t8y2 35710e7766 fix(postgres): handle column metadata type mismatches 2026-07-08 10:52:48 +08:00
t8y2 bb959697d0 feat(release): bump app to 0.5.50 2026-07-08 10:02:45 +08:00
t8y2 1830d76a67 fix(sqlserver): narrow named instance test 2026-07-08 09:57:12 +08:00
t8y2 0747134dc2 fix(sqlserver): preserve legacy encryption fallback 2026-07-08 09:21:21 +08:00
t8y2 6e05c5182b feat(release): bump app to 0.5.49 2026-07-08 01:16:44 +08:00
Guoyu Su 016821122c
fix(sqlite): open SQLCipher databases with configured key (#2807) 2026-07-08 00:13:25 +08:00
onenewcode ba81fa4497
feat(redis): support multiple value formats in viewer (#2766)
* feat(redis): improve value decoding and viewer formats

* fix(redis): preserve stream field/value blobs

* Revert "fix(redis): preserve stream field/value blobs"

This reverts commit 168af0619a438dbba5cf17b3e0ec9202a3100d83.
2026-07-08 00:13:20 +08:00
t8y2 ad9841ab77 fix(import): allow selecting create-table column types 2026-07-08 00:02:47 +08:00
t8y2 8364f468a0 fix(sqlserver): use legacy encryption for fallback 2026-07-07 22:51:04 +08:00
zipg 6cba08fccb
fix(kingbase): 修复连接与元数据查询异常 2026-07-07 22:12:36 +08:00
gggaiitx b49638ff1e
fix(mysql): set group_concat_max_len during setup 2026-07-07 17:58:07 +08:00
Guoyu Su c5eed06b93
fix(postgres): load foreign key referential actions 2026-07-07 17:18:02 +08:00
二丫讲梵 326c4f5495
feat(dataGrid): 增加复制逐行插入语句的功能 2026-07-07 16:39:38 +08:00
zipg d50f1761d6
fix(sql): handle database drag and routine export 2026-07-07 15:54:48 +08:00
t8y2 23d268450c fix(mysql): strip IPv6 brackets before TCP connect 2026-07-07 15:48:35 +08:00
zipg d90847bbba
feat(ai): support SQL library file references 2026-07-07 15:39:10 +08:00
LRcoding fc01cea80f
fix(oracle): preserve plsql block terminators 2026-07-07 15:29:43 +08:00
t8y2 ef39c2bfe8 fix(ssh): include SHA-1 ETM MAC fallback 2026-07-07 14:55:03 +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 adb8da3ad3 fix(ssh): support legacy hmac-sha1 MAC 2026-07-07 14:14:09 +08:00
t8y2 2b4cefc987 fix(gaussdb): classify stored procedures 2026-07-07 13:58:33 +08:00
t8y2 fc72be7dc2 fix(elasticsearch): resolve SQL table aliases 2026-07-07 13:37:24 +08:00
zipg 24ac0f7413
fix(sqlserver): order top query pages by exposed column
Co-authored-by: zipg <4047349+zipg@users.noreply.github.com>
2026-07-07 13:31:15 +08:00
t8y2 6e7f0578b6 fix(saphana): keep DO blocks together 2026-07-07 13:23:53 +08:00
t8y2 3161efe95f fix(postgres): skip cert parsing for non-verifying TLS 2026-07-07 13:02:35 +08:00
t8y2 ab186c30a5 fix(export): preserve PostgreSQL JSON escapes 2026-07-07 12:49:14 +08:00
t8y2 1db11ea145 feat(postgres): support batch table cascade actions 2026-07-07 11:57:44 +08:00
t8y2 df1f53acb8 feat(sqlite): support WSL UNC network paths 2026-07-07 10:41:12 +08:00
t8y2 780470384a feat(release): bump app to 0.5.48 2026-07-06 18:29:36 +00:00
t8y2 7155992e04 feat(import): create table during data import 2026-07-07 02:01:02 +08:00
zipg 668919a7c9
fix(gbase8s): make view source saves safer 2026-07-07 01:50:53 +08:00
t8y2 3609641fc8 fix(mysql): stream query result exports 2026-07-07 00:50:14 +08:00
t8y2 9cbe857a2a feat(update): 应用内更新提示支持英文 release notes 2026-07-07 00:26:56 +08:00