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
徐文彬 and Claude 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
t8y2
30a48a878c
fix(query): reload connection config before execute
2026-05-28 18:54:51 +08:00
t8y2
486d9bb3a6
fix(connection): move query timeout into per-connection settings
2026-05-28 18:18:45 +08:00
t8y2
dafed47b07
fix: improve database error message extraction for queries
...
- frontend: use e.message instead of String(e) in toErrorResult to avoid
"Error: " prefix for HTTP-mode errors, matching connectionErrorMessage
- frontend: apply same fix to MongoDocBrowser error display
- backend(postgres): use pg_error_to_string across all query execution
paths (execute, execute_batch, copy_out, copy_in) to extract DbError
details instead of generic transport-layer errors
Other databases (MySQL, SQL Server, SQLite, DuckDB) already include
server-level error details in their native Error::to_string().
2026-05-27 15:40:28 +08:00
t8y2
792c816a17
feat: make query timeout configurable via global settings (default 30s)
...
Add queryTimeoutSecs to editor settings with UI control in the settings
dialog. 0 means no timeout. Applied to all query execution paths including
sidebar table data loading and EXPLAIN queries.
Closes #441 .
2026-05-25 18:30:55 +08:00
t8y2
d326cb0ced
fix: scope query connections by client session
2026-05-25 17:23:36 +08:00
t8y2
dbd2b2bab5
fix: update tests for table structure editor tab conversion and type/length split
...
- Remove deleted Dialog.vue references from dialogOpenWatcher and structure tests
- Update presentation test assertions for tab layout and SearchableSelect
- Add schema to newQueryContext expected results (schema propagation)
- Make queryStore i18n resilient to missing Vue app context (tests)
- Fix regex patterns for oxfmt-formatted code
2026-05-24 22:52:58 +08:00
t8y2
75e97001ec
style: fix formatting (oxfmt + cargo fmt)
2026-05-24 22:38:16 +08:00
t8y2
801434e423
refactor: convert table structure editor from modal dialog to tab
...
Replace the dialog-based TableStructureEditorDialog with a tab-based
TableStructureEditor, making it consistent with query editors, data
viewers, and object browsers. Users can now switch between editing
table structure and running queries freely.
2026-05-24 21:17:35 +08:00
t8y2
6b6f7694fd
fix(app): separate view source tabs and trim view metadata
2026-05-23 13:08:19 +08:00
t8y2
00fd206a57
fix(schema): auto-select schema when creating query from schema context menu
...
When right-clicking a PostgreSQL schema node and selecting "New Query",
the schema dropdown in the editor toolbar was not pre-selected. Pass
node.schema to createTab so the editor initializes with the correct schema.
2026-05-23 12:33:14 +08:00
t8y2
7a3ff3bff9
refactor(sql): move builders to Rust
2026-05-23 01:28:52 +08:00
t8y2
cb3e1d6e9f
feat(query): move SQL editability analysis to Rust
2026-05-22 15:09:31 +08:00
t8y2
6c83b10b42
fix(mongo): preserve auth database for commands
2026-05-22 12:44:16 +08:00
SuLea-IT
b23988161a
Improve memory retention in query results ( #395 )
2026-05-22 10:42:58 +08:00
t8y2
47ec339d5a
fix: preserve pending row edits when switching tabs ( #362 )
...
Wrap ContentArea in KeepAlive to cache tab instances across switches.
Add a module-level pending-changes cache in useDataGridEditor so edits
survive DataGrid destruction caused by result eviction and reload.
2026-05-20 16:22:17 +08:00
t8y2
261d43c1b7
fix(grid): respect page size row limits
2026-05-19 11:31:38 +08:00
t8y2
06683c57b1
chore(repo): move desktop app under apps
2026-05-18 02:35:39 +08:00