Commit Graph
67 Commits
Author SHA1 Message Date
t8y2 19b5b70fb7 feat: confirm before closing unsaved SQL query tabs 2026-06-12 01:09:41 +08:00
haipengno1 7de0de2313 实现 Redis 的查询功能 2026-06-12 00:20:17 +08:00
t8y2 c9203de1e7 feat(tabs): add duplicate tab feature in context menu 2026-06-11 01:37:58 +08:00
t8y2 9793dc94b7 feat(driver): centralize database capabilities 2026-06-10 22:12:44 +08:00
t8y2 edba8214b5 feat: show username/password fields for Access database connections 2026-06-10 08:37:18 +08:00
t8y2 9ffa4c41d9 feat: add SQL library panel with folder/file management, rename, and sync support 2026-06-10 02:46:10 +08:00
t8y2 426b7911bc fix(editor): preserve sql tab cursor state 2026-06-09 18:18:18 +08:00
t8y2 e153d88091 fix(editor): preserve sql tab scroll position 2026-06-09 18:04:03 +08:00
t8y2 2050bee75c feat(query): show elapsed time while executing 2026-06-09 17:57:25 +08:00
Yong Studt 2628fb8374 feat(elasticsearch): add SQL-model execution with mapping-aware completion
- Route SELECT * FROM <index> through /_search for simple browses; aggregates/projections stay on /_sql
- Drive completion columns from /_mapping (flattened dotted fields, multi-fields)
- Switch editor completion to SQL when the active statement starts with SELECT/WITH on ES
- Skip generic SQL semantic diagnostics for ES (hyphenated wildcard indices caused 500s)
- Wire ES into server-side pagination plan; derive completion context from line blocks
- Fix result-grid pagination exceeding in-memory result sets (allRowsLoaded)
2026-06-08 17:53:05 +08:00
t8y2 f1a94262b5 feat(user-admin): add database user privilege management 2026-06-08 13:47:56 +08:00
Quinlevi 897e6998fd feat(dameng): full DM8 database support
Adds Dameng DM8 explain/autotrace support and user-management SQL support, with backend autotrace safety checks and escaped CREATE USER SQL.
2026-06-08 02:07:00 +08:00
t8y2 a5659d7637 fix(mongodb): support getIndexes shell command 2026-06-08 01:25:44 +08:00
t8y2 74e19ec6a3 feat(databend): support agent driver 2026-06-07 16:39:22 +08:00
t8y2 2b5300722f feat: optimize tab result lifecycle caching 2026-06-06 20:30:35 +08:00
t8y2 fecefb1589 fix(grid): refine total row counting 2026-06-06 11:13:47 +08:00
t8y2 bcafb9bc93 Revert "feat: support multiple desktop windows"
This reverts commit 642fa39bb8.
2026-06-06 00:01:38 +08:00
t8y2 642fa39bb8 feat: support multiple desktop windows 2026-06-05 20:45:00 +08:00
Xudong Guo 9b15843e1a feat: add KWDB support 2026-06-05 16:55:38 +08:00
t8y2 120566b1fd fix: improve JDBC dialect handling 2026-06-04 19:40:52 +08:00
skyler 0f691485c8 Merge pull request #706 from DengQingNian/feat/drag-tab-reorder
feat(ui): add tab drag-and-drop reordering
2026-06-04 11:21:52 +08:00
dqn b028b0aea2 fix(ui): update drop position on mousemove and enforce pinned grouping in tab reorder
- Track mousemove during drag to continuously update before/after indicator
- Re-apply orderPinnedFirst after reorder to prevent breaking pinned tab grouping
2026-06-04 10:40:42 +08:00
t8y2 388873213f fix(export): stream full table exports correctly 2026-06-04 01:10:23 +08:00
dqn be9b071473 feat(ui): add tab drag-and-drop reordering
Support dragging tabs horizontally to reorder them. A ghost element follows
the cursor during drag, and a drop indicator shows the target position.
2026-06-03 23:58:01 +08:00
t8y2 9648f74b87 fix(tabs): close object tabs on disconnect release 2026-06-03 19:30:34 +08:00
t8y2 af40af603e feat(editor): add configurable tab handling on disconnect 2026-06-03 16:53:40 +08:00
t8y2 e67894bea7 chore: upgrade frontend tooling and speed up checks 2026-06-03 12:20:27 +08:00
t8y2 763470e86d fix(oracle): normalize unquoted query metadata identifiers 2026-06-03 02:32:08 +08:00
t8y2 ccaa50e36b fix(query): honor connection timeout during exports 2026-06-02 19:38:21 +08:00
t8y2 bce6a820ec fix(grid): preserve result during refresh 2026-06-02 18:58:37 +08:00
t8y2 2ff4a3fd97 fix(tabs): close connection tabs on disconnect 2026-06-02 18:19:28 +08:00
t8y2 f5eb3ba5db fix: preserve data grid order by input 2026-06-02 11:36:59 +08:00
t8y2 8058c238b8 fix(desktop): allow multiple new table structure tabs 2026-06-02 02:13:09 +08:00
t8y2 ad33db0886 fix(desktop): restore table tabs on startup 2026-06-01 23:07:47 +08:00
t8y2 b4c469a69f fix(desktop): close database tabs with connection 2026-06-01 20:21:42 +08:00
t8y2 b35c1486e6 feat(desktop): improve query result exports and toolbar state 2026-06-01 19:26:15 +08:00
t8y2 84a7ff6b92 fix(tabs): reload missing table data 2026-06-01 17:18:51 +08:00
t8y2 a87b8ece31 fix(mongodb): support compass shell commands 2026-06-01 16:24:31 +08:00
t8y2 a315ab93c7 fix(query): preserve tab SQL session state 2026-06-01 15:41:15 +08:00
t8y2 7f5de70687 fix(export): include all paginated query result rows 2026-06-01 14:32:16 +08:00
t8y2 b75219ab40 feat(tabs): support renaming query tabs 2026-06-01 14:24:04 +08:00
t8y2 297e3d0752 fix(grid): preserve table data pagination offset 2026-06-01 14:18:21 +08:00
t8y2 e28495f3c1 perf: optimize table data loading 2026-05-31 22:10:02 +08:00
t8y2 d8f2bce320 fix(query): release stale result payloads 2026-05-31 13:45:53 +08:00
t8y2 ed1db7db6b fix(ui): localize hardcoded strings 2026-05-30 10:01:12 +08:00
t8y2 027c39a610 perf: optimize database connection pooling and query execution
- Increase MySQL pool max from 1 to 3 to avoid contention across tabs
- Merge get_columns serial queries into a single LEFT JOIN
- Clone pool handles before health checks in refresh_connections to reduce lock contention
- Skip COUNT(*) when result rows are fewer than the page size
2026-05-29 16:26:19 +08:00
t8y2 b54eda1889 fix: 修复应用长时间挂后台后恢复时表格数据永久加载的问题
三层防护:
- MySQL 连接获取时执行 ping 健康检查,死连接自动重连
- macOS Reopen 事件 + 前端 visibilitychange 触发连接刷新
- 前端 Promise.race 超时保护,确保 loading 状态不会超过 60s
2026-05-29 15:12:14 +08:00
t8y2 539faef23d feat(query): display total row count in result status bar
Execute COUNT query asynchronously after main query to show total
matching rows. Strip user-supplied LIMIT/OFFSET from count SQL so
the total reflects all rows, not just the limited page.
2026-05-28 22:44:13 +08:00
徐文彬 5ea146e08e fix(mongodb): guard aggregate execution paths 2026-05-28 21:29:08 +08:00
徐文彬andClaude Opus 4.7 c56bcb8e2d feat(mongodb): 支持聚合查询、批量写入和 MCP 集成
- 桌面端:解析 db.<集合>.aggregate([...]) shell 语法,新增 mongoAggregateDocuments
  接口(Tauri + HTTP);mongo 入口统一补 ensureConnected;ObjectId(...) 自动
  转换为 {"\$oid":"..."} 扩展 JSON 表示。
- dbx-core:新增 aggregate_documents、insert/update/delete_documents bulk
  操作;扩展 JSON 解析识别 \$oid;schema list_tables_core 补 MongoDB/Elasticsearch
  分支返回 COLLECTION/INDEX。
- dbx-web / Tauri 命令 / MCP bridge:注册 4 个新 mongo 路由
  (aggregate/insert/update/delete documents);MCP bridge 新增 mongo HTTP 入口
  和 lazy 连接复用。
- node-core (MCP 后端):mongodb 走专属 executeQuery / listTables /
  describeTable;read-only 默认 + DBX_MCP_ALLOW_WRITES /
  DBX_MCP_ALLOW_DANGEROUS_SQL 两级开关;aggregate 含 \$out/\$merge 走同样开关;
  describeTable 抽样 20 条文档推断字段类型,_id 自动标记主键。
- mcp-server:mongodb 跳过 SQL safety evaluator(mongo shell 与 SQL 语法
  不兼容),改由 backend 做命令级 gating;附注释。
- AiAssistant 同时 emit replaceSql + executeSql 让编辑器和结果保持一致;
  App.vue ensureQueryTab 在无上下文时回退到连接默认库;aiMessageRender
  识别 mongodb / mongo 代码块。
- Review 修复:合并两份重复的 evaluateMongo*Safety 实现(同时修复 web-backend
  用字符串比较导致空 filter 检查可被空格绕过的 bug);ObjectId 正则兼容
  单/双引号;mongo_ops 错误文案 "MCP" 改为 "bulk";补 aggregate 解析测试用例。

测试:pnpm test 911 通过;vue-tsc 通过;cargo check -p dbx-core 通过。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-28 21:25:43 +08:00