Commit Graph
127 Commits
Author SHA1 Message Date
t8y2 223ecbec20 fix(oracle): skip rowid for view data queries 2026-07-04 17:07:43 +08:00
t8y2 7e7c4944e9 refactor(desktop): organize lib modules by domain 2026-07-04 13:53:52 +08:00
t8y2 32a9496d2a fix(tabs): close dropped table tabs 2026-07-04 12:21:44 +08:00
miracle 30b9460442 fix(dbx-core): improve duckdb query cancellation 2026-07-04 02:31:32 +08:00
Guoyu Su 3a2abf4a49 fix(desktop): scale multi-statement query timeout (#2544) 2026-07-04 02:19:10 +08:00
onenewcode 91c77e53c4 feat(mongodb): support collection stats shell commands
Add db.coll.stats() / dataSize() / storageSize(scale) / totalIndexSize()
so these MongoDB shell commands return a result grid instead of the
"Use MongoDB shell-style commands" error (issue #2529).

- backend: collStats via mongo_driver.collection_stats, wired through
  mongo_ops, the dbx-web /mongo/collection-stats route, the tauri
  mongo_collection_stats command, and the MCP data bridge
- node-core: parseMongoCollectionStatsCommand + result formatter and
  executeQuery dispatch (web build + MCP path)
- desktop: mirror the parser/executor/autocomplete in mongoShellCommand.ts,
  queryStore.ts, api/tauri/http facade, and mongoCompletion.ts
- tests for the parser, result formatter, and completion entries

Close #2529
2026-07-03 21:32:29 +08:00
f826cb5d38 feat(mongo): add GridFS manager for MongoDB
* feat(mongo): browse GridFS buckets and files

Refs #2342

* feat(mongo): add GridFS manager for MongoDB

* chore(i18n): autofill new translations

---------

Co-authored-by: dbx-i18n-bot <github-actions[bot]@users.noreply.github.com>
Co-authored-by: t8y2 <1156263951@qq.com>
2026-07-03 18:34:00 +08:00
t8y2 1ff3676531 fix(data): use saved row limit for table opens 2026-07-03 14:00:39 +08:00
zipgandstaff 4efff9a190 fix(editor): prompt before closing unsaved SQL tabs
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-07-02 16:43:55 +08:00
47dc35ccb2 feat(settings): 启动时标签页恢复策略三选项 (all/pinned/none) (#2395)
* feat(settings): 添加启动标签页恢复策略

* i18n: 补齐启动标签页恢复策略 5 个 locale 译文

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
Co-authored-by: t8y2 <1156263951@qq.com>
2026-07-02 12:23:24 +08:00
8747df53ef fix(mongodb): support multi-command execution
* fix mongodb multi-command execution

* fix(connection): 复制连接时保持在同一组内

- 修改 `addConnection` 方法以支持指定目标组 ID
- 更新 `duplicateConnection` 函数以传递目标组 ID
- 添加测试用例以验证复制连接的功能

* fix: add MongoDB data transfer entry

* feat(editor): SQL 编辑器选区大小写转换

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>

* fix(editor): 修复SQL快捷执行导致执行全量SQL的问题 (#2384)

- 将执行SQL语句的逻辑从直接请求改为通过事件发射
- 增强了代码的可扩展性和可维护性

* fix(sidebar): cache tooltip overflow measurement

* fix(dialog): allow dragging window from modal overlay

* fix(oracle): reuse shared pool for data tabs

* fix(sidebar): reduce comment text repaint cost

* fix(saved-sql): preserve folder on metadata save

* fix(agent): execute transaction control SQL as statements

* feat(vector): add Qdrant/Milvus collection dimension display (#2396)

* fix(oracle): 修复时间字段编辑和表结构修改报错

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>

* fix(agents): limit common version bumps

---------

Co-authored-by: 二丫讲梵 <eryajf@163.com>
Co-authored-by: zipg <geeky@foxmail.com>
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
Co-authored-by: t8y2 <1156263951@qq.com>
Co-authored-by: lexmin0412 <zhangle_dev@outlook.com>
2026-07-02 12:19:38 +08:00
t8y2 d1684bc4d4 fix(oracle): reuse shared pool for data tabs 2026-07-02 11:48:02 +08:00
Abeautifulsnow d55a708d6a feat(query): add manual transaction controls 2026-07-02 01:30:31 +08:00
t8y2 58e2d983c2 fix(tabs): restore previous tab after data tab close 2026-07-02 00:48:30 +08:00
ff1a0f5eda fix: 隔离 MySQL 大库场景前台查询与后台元数据加载 (#2354)
* fix: isolate data tab mysql queries from metadata loads

* refactor(completion): drop unused limiter snapshot and share concurrency constant

---------

Co-authored-by: zero <zero@zeroMacmini.local>
Co-authored-by: t8y2 <1156263951@qq.com>
2026-07-01 20:03:09 +08:00
onenewcode 93eeeaa9c6 feat(mongo): add dropIndex and dropIndexes support across full stack 2026-07-01 17:53:09 +08:00
t8y2 d6a0da7169 fix(tabs): prompt before closing dirty tabs 2026-07-01 15:50:08 +08:00
t8y2 74165cc045 fix(data): decouple table open limit from result page size 2026-07-01 15:14:32 +08:00
zipgandstaff 8129ecda88 fix(editor): keep edit-structure entry across table property tabs
* fix: 保留表属性编辑结构入口

* fix: 加深表属性页签选中态

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-07-01 12:51:44 +08:00
二丫讲梵 2e8d399dab feat(queryStore): 添加数据库打开状态跟踪功能 (#2251)
- 新增 isDatabaseOpen 方法,用于检查特定连接的数据库是否处于打开状态
- 在 TreeItem 组件中显示数据库打开指示器
- 添加 queryStore.database-open.spec.ts 测试文件,验证数据库打开状态的逻辑
2026-06-30 22:43:38 +08:00
onenewcode b90e4fd64e feat(mongodb): support createIndex shell command (#2187) 2026-06-30 21:34:58 +08:00
zipg 95be4fb195 fix: 修复 SQL Server 列注释显示 2026-06-30 17:31:57 +08:00
miracle 7cec4892bf feat(kafka): support Kafka MQ admin client 2026-06-30 17:01:24 +08:00
zipg a65a5881d5 Fix:保留表结构编辑未保存草稿 2026-06-29 12:11:59 +08:00
Guoyu Su 7a5984a1fd fix(mongodb): support shell projection and db.version 2026-06-29 00:27:27 +08:00
zipg 33422ec921 feat(mongodb): support editing find query results 2026-06-28 18:59:27 +08:00
二丫讲梵 433907e96e feat(grid): support result source labels 2026-06-28 13:58:23 +08:00
zipgandstaff b85b14bfde Fix: 优化 SQL 库启动加载
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-27 15:07:26 +08:00
miracleandonceMisery d128604743 fix(connection): 修复数据库连接超时后无法可靠恢复的问题
* feat(core): implement PIP-0001 database connection timeout recovery

- Add DbOperationBudget struct for unified execution budget model
- Add deadpool create/recycle timeout for PostgreSQL pools
- Add checkout_postgres_client helper replacing 14 bare pool.get() calls
  with timeout + cancel token support
- Fix PostgreSQL TLS cancel: rebuild TLS connector from stored context,
  fallback to NoTls on failure
- Add timeout to MySQL kill_query and kill_query_with_opts (5s)
- Extend is_connection_error to match deadpool pool timeout messages
- Unify keepalive default to 30s (was 60s Rust / 0s frontend mismatch)
- Inject PostgreSQL TCP keepalive params (idle=30s, interval=10s, retries=3)
- Inject MySQL tcp_keepalive=30s in OptsBuilder
- Make MySQL inactive_connection_ttl configurable from idle_timeout_secs
- Add stage-based structured logging for pool.checkout/health.check/cancel
- Store PostgresCancelContext in AppState for TLS cancel reconstruction
- Clean up cancel contexts on pool removal/drain
- Add unit tests for DbOperationBudget and pool timeout error detection

* fix(core): align timeout recovery with PIP-0001

* fix(core): handle timeout recovery review issues

* fix(core): complete connection timeout recovery

* fix(core): fall back postgres cancel connector build

* refactor: revert comment translations to English in connection.rs and query.rs

- Revert DbOperationBudget doc comments to English (query.rs)
- Revert PostgresCancelContext and TLS cancel comments to English (connection.rs)
- Keep Chinese error-matching strings in is_connection_error unchanged

---------

Co-authored-by: onceMisery <onceMisery@users.noreply.github.com>
2026-06-26 21:41:56 +08:00
zipg d5b483b050 fix(tdengine): fix table data preview 2026-06-25 22:58:25 +08:00
zipgandstaff d0dce7b87b fix(gaussdb): 修复查询分页限制
* 修复驱动管理与首页重叠

* 修复 GaussDB 查询分页限制

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-25 18:28:31 +08:00
t8y2 42541d1146 fix(export): align row limits and progress 2026-06-25 17:01:32 +08:00
t8y2 5522842b19 fix(ci): fix broken tests after external-sql and xlsx changes 2026-06-25 00:16:11 +08:00
t8y2 b89df5a43c feat(sql): save external files locally 2026-06-24 23:13:17 +08:00
t8y2 c8464bf842 fix(mongo): use page size for aggregate results 2026-06-24 22:38:00 +08:00
miracle 588ba3352d feat: stream query result CSV/XLSX exports
* docs: add query result streaming export design

* feat(core): stream query result exports

* feat: expose query result streaming export APIs

* feat(desktop): stream query result exports from grid

* fix: route query result export cancellation through its command

* fix: reduce query export batch size and cancel latency

* opt: del local test files
2026-06-24 21:18:11 +08:00
t8y2 829f6dc7eb feat(grid): add current page sorting 2026-06-24 15:39:40 +08:00
二丫讲梵 3ebfae05a2 feat(nacos): add Nacos management console (#1456) 2026-06-24 01:19:18 +08:00
t8y2 5c4c87a042 feat(grid): align query result editing 2026-06-23 17:07:30 +08:00
t8y2 2f2fc36b18 fix(data): align table preview ordering 2026-06-23 10:51:30 +08:00
t8y2 ac3d3a7948 feat(agent): track execution context activity 2026-06-22 23:17:11 +08:00
skyler ee29694776 Merge pull request #1586 from onceMisery/feat/opt-connections
fix: handle connection loss state for new queries
2026-06-22 22:32:02 +08:00
t8y2 0b6e1579ca feat(agent): add execution context recovery 2026-06-22 22:15:16 +08:00
fagao c0248cbe8e fix: handle connection loss errors consistently 2026-06-22 21:43:01 +08:00
fagao e2f68de455 fix: resolve MySQL connection state desync after disconnect/reconnect
- Use synchronous pool removal in desktop disconnect_db to prevent
  race condition when user quickly disconnects and reconnects
- Rename recordMetadataLoadError to recordConnectionLostError and
  export it for cross-store reuse
- Sync query execution errors back to connection state via
  recordConnectionLostError in queryStore catch blocks
- Add backend check_connection_health method (dbx-core) with Tauri
  command and web route for proactive pool verification
- Add frontend checkConnectionHealth API (tauri.ts/http.ts/api.ts)
- Enhance ensureConnected to verify backend pool health before
  assuming connection is valid, auto-reconnect if stale
2026-06-22 20:40:40 +08:00
t8y2 09d54d09bc feat(mongodb): support use command to switch database 2026-06-22 16:42:38 +08:00
t8y2 d7e52779c3 fix(data): refresh table metadata lazily 2026-06-22 11:49:01 +08:00
t8y2 2fc835060e fix: sync saved sql file connection on tab connection change 2026-06-21 23:49:54 +08:00
uicky 0f1b5f8b53 fix(export): resolve query result export progress 2026-06-19 11:15:18 +08:00
t8y2 593635a94d fix(jdbc): keep query pagination cursor sessions 2026-06-18 17:40:12 +08:00