Commit Graph
417 Commits
Author SHA1 Message Date
t8y2 2f06ca5fe3 fix(data-compare): batch sync execution 2026-06-26 17:10:26 +08:00
t8y2 cdfe576024 fix(structure): load dynamic data type options 2026-06-26 15:22:33 +08:00
LRcoding eb664dba4c fix(core): support fuzzy table search 2026-06-26 13:15:01 +08:00
t8y2 c3d47ece2c fix(sqlserver): support 2008 query pagination 2026-06-26 12:03:25 +08:00
t8y2 2b6a8919d2 fix(sqlserver): display binary cells as hex 2026-06-26 11:44:32 +08:00
dalew d815a16b86 feat(redis): move scan page size to connections 2026-06-26 11:13:34 +08:00
t8y2 dff94d60f5 fix(oceanbase): show oracle mode schemas in sidebar 2026-06-26 02:03:00 +08:00
lexmin0412 c2376494d3 feat(vector): add ChromaDB support 2026-06-26 01:41:36 +08:00
t8y2 485188322b feat(clickhouse): show table size and comments 2026-06-26 01:37:13 +08:00
zipg 0f312084ff fix(sidebar): paginate table list by page size 2026-06-25 23:54:09 +08:00
t8y2 0cc0b84c95 fix(sqlserver): align schema tree and creation 2026-06-25 20:37:23 +08:00
t8y2 0c0e90ab1a feat(export): add table read cursor sessions 2026-06-25 18:37:04 +08:00
jischeng a595d4d4bd feat(mysql): support external catalogs (Paimon/Hive) via catalog= URL param
StarRocks/Doris expose external storage through a catalog. dbx had no
catalog concept, so connecting to e.g. `paimon_catalog.clip` failed: the
URL path's database was sent as the MySQL handshake schema and rejected
before any `SET catalog` could run, and table listing/preview ran against
the default catalog.

Add an opt-in `catalog=<name>` URL parameter for mysql-family connections:

- `mysql_connection_catalog`: reads the `catalog` param (percent-decoded).
- `mysql_setup_queries`: emits `SET catalog = <name>` when present. Pushed
  last so mysql_async's back-to-front setup execution (Vec::pop) runs it
  before `USE <database>`, which would otherwise fail (the database lives
  in the external catalog). The pool re-runs setup after each reset, so the
  catalog stays current.
- `mysql_async_url`: when a catalog is configured, strip the database path
  from the URL handed to mysql_async so the handshake does not send the
  external-catalog database as the schema. The original URL (with path) is
  still used for setup, so `USE <database>` is emitted correctly.
- Add `catalog` to `is_dbx_handled_mysql_url_param` so mysql_async ignores
  the unknown param.

This is opt-in: only connections that set `catalog=` are affected; all
existing mysql/StarRocks/Doris connections behave unchanged. Configure a
Paimon connection as `database=clip`, `url_params=catalog=paimon_catalog`.

Verified against a StarRocks + Paimon catalog via the dbx MCP bridge:
SHOW DATABASES, SHOW TABLES, DESCRIBE, and unqualified `SELECT * FROM <t>`
all resolve in the selected catalog.
2026-06-25 18:07:26 +08:00
t8y2 1098056152 fix(sqlserver): stream query result exports 2026-06-25 16:16:30 +08:00
t8y2 b2edf7cad6 fix(oracle): apply visible schema filter 2026-06-25 15:19:20 +08:00
t8y2 b367861fe1 fix(sqlserver): cast completion null placeholders 2026-06-25 12:35:08 +08:00
ptma 484d20922a fix(postgres): handle PostgreSQL views 2026-06-25 10:54:38 +08:00
大峰 40c93b9dad feat(connection): add visible schema filtering 2026-06-25 01:36:06 +08:00
t8y2 bf9ef4365b feat(vector): add weaviate support 2026-06-25 00:31:27 +08:00
jischeng 849caf4b39 feat(ssh): probe none authentication before credentials
Some SSH proxies and jump-hosts authenticate with the "none" method,
requiring no password or key. dbx only tried publickey/password/agent,
so connecting through such a host failed with "SSH public key
authentication failed" — and the frontend forced users to enter a
credential just to pass validation.

- Backend: probe authenticate_none first in connect_and_authenticate;
  on rejection fall back to the configured credential method, matching
  standard openssh behavior.
- Frontend: drop the "password/key/agent required" check in
  validateTransportLayers so passwordless hops can be saved and tested.

Refs #1628
2026-06-24 21:05:57 +08:00
t8y2 b356aa8df5 fix(connection): recover idle connection pools 2026-06-24 20:12:24 +08:00
zipgandstaff 902419a3b9 fix(postgres): compatibility with older PostgreSQL versions for table DDL
* Fix: 修复 PostgreSQL CTE DML 分页改写

* fix: 兼容 PostgreSQL 旧版本索引 DDL 查询

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-24 19:12:28 +08:00
t8y2 23edbe391f feat(postgres): support schema comments 2026-06-24 18:35:43 +08:00
t8y2 4558984016 fix(clickhouse): support data grid editing 2026-06-24 13:17:27 +08:00
t8y2 f51d622d3f fix(postgres): decode binary address types 2026-06-24 10:55:40 +08:00
t8y2 cebb39cb80 feat(completion): add scoped metadata assistant 2026-06-24 00:40:28 +08:00
hb 3f65297f25 fix(highgo): preserve nullable metadata for pg-compatible agents (#1585) 2026-06-24 00:35:47 +08:00
Guoyu Su 90fd77cb9e perf(redis): reduce large key search payload and render cost (#1672) 2026-06-23 22:57:03 +08:00
t8y2 49705a1a8f feat(sqlite): support custom database file suffixes 2026-06-23 20:15:06 +08:00
zipg 1c7ef0d235 feat(mysql): optimize table structure loading 2026-06-23 17:31:37 +08:00
t8y2 fc9f97b6b5 fix(redis): speed up large key scans 2026-06-23 15:14:24 +08:00
t8y2 280e94e3c1 fix(postgres): avoid backslash LIKE escape 2026-06-23 00:43:10 +08:00
t8y2 0b6e1579ca feat(agent): add execution context recovery 2026-06-22 22:15:16 +08:00
t8y2 e55dbe2acc fix(mysql): avoid key usage join for columns 2026-06-22 18:46:45 +08:00
t8y2 9de738e76c fix(mongo): normalize invalid direct connection URL 2026-06-22 18:43:40 +08:00
t8y2 f52064bd0e fix(agent): extend metadata RPC timeout 2026-06-22 18:17:11 +08:00
t8y2 6e6f7bda0b fix(mongo): preserve dates during document edits 2026-06-22 17:50:17 +08:00
t8y2 628fadf517 fix(sqlserver): preserve batch result sets 2026-06-22 17:07:10 +08:00
t8y2 791d55661e fix(agent): prevent zombie processes on agent cleanup
Root cause:
- AgentDriverClient::kill() is called during Drop to clean up child processes
- Old implementation called child.wait() and ignored errors with let _
- When wait() fails (e.g., process already killed by signal), child is not reaped and becomes zombie

Fix:
- Use try_wait() non-blocking polling, up to 100ms timeout
- Avoid long blocking in Drop during async cleanup
- Still perform final blocking wait() as fallback after timeout
- Log all wait errors for debugging

Impact:
- All JDBC agents (Oracle/DB2/DM8/XuguDB etc.)
- Prevents zombie process accumulation during long-running sessions
2026-06-22 14:59:05 +08:00
t8y2 4346192713 feat(mongodb): show collection metadata in sidebar 2026-06-22 12:42:31 +08:00
t8y2 9418e37c04 feat(settings): add show execution target picker option and related UI elements 2026-06-22 12:05:47 +08:00
hb 4e07f73157 fix(mysql): preserve temporary tables in client session pools
Disable COM_RESET_CONNECTION for single-connection session pools
(max_connections == 1) so that MySQL session state such as TEMPORARY
TABLEs is not cleared when a connection is returned to the pool.

Closes #1509
2026-06-22 00:37:41 +08:00
t8y2 0d4e35ee02 fix(core): increase PostgreSQL and MySQL connection pool size
- PostgreSQL: 4 -> 10 connections
- MySQL: 3 -> 10 connections

Fixes #1516
2026-06-21 21:01:15 +08:00
t8y2 6c571a57ab fix(mysql): cancel running SQL imports 2026-06-21 09:14:54 +08:00
Scars 4590057456 fix(postgres): cast relkind to text to prevent deserialization panic 2026-06-20 22:24:29 +08:00
林剑凛 41edb3da91 feat(mongo): add database and collection deletion 2026-06-20 22:22:04 +08:00
dalew f71406c1c2 feat(redis): add slowlog panel and integrate with backend APIs
* feat(redis): add slowlog panel and integrate with backend APIs

* fix(redis):Slowlog Panel Compatibility Issues
2026-06-20 21:47:14 +08:00
dbin0123 92d3f64eae feat: fix connection cascade failure, add auto-recovery for all drivers 2026-06-19 23:06:21 +08:00
t8y2 d59997c090 feat(objects): add table statistics columns 2026-06-19 14:35:32 +08:00
t8y2 4186c94dd4 fix(agent): clarify protocol capability contract 2026-06-19 14:18:19 +08:00