Commit Graph

2548 Commits

Author SHA1 Message Date
t8y2 aed96b4a06 fix(connection): hide default visible schema button 2026-06-27 01:35:03 +08:00
zipg c4fe7c8ee8
fix: 修复 PostgreSQL 空字符串默认值处理 (#1970)
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-27 00:53:53 +08:00
t8y2 23b44cc2b9 fix(mcp): add direct Redis command execution 2026-06-26 22:27:31 +08:00
eryajf 76e2d33cd3 feat(update): add configurable update download source 2026-06-26 22:25:42 +08:00
miracle 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
t8y2 796b0ce5b7 fix(dameng): restore exports with identity columns 2026-06-26 21:25:39 +08:00
t8y2 fe03f740b7 fix(postgres): handle legacy materialized view source 2026-06-26 19:39:08 +08:00
t8y2 fbcf3591d0 feat(settings): add MCP config templates for AI clients 2026-06-26 19:15:12 +08:00
weihan 31290a09c9
fix(navicatImport): 修复 OceanBase NCX 连接导入模式 (#1963)
- 根据 Navicat NCX 的 ConnType 区分 OceanBase MySQL 和 Oracle 模式:
- MYSQL 导入为 DBX 的 OceanBase MySQL 模式,ORACLE 导入为 oceanbase-oracle。
- 同时忽略 OceanBase Oracle 连接中的 ORCL 占位数据库,避免生成错误连接配置。
2026-06-26 19:12:53 +08:00
t8y2 8732075dc9 fix(vastbase): avoid backslash escape in role grants SQL 2026-06-26 19:07:22 +08:00
二丫讲梵 10aff74072
feat(export-tracker): 增强导出任务跟踪功能 (#1958)
- 添加了对数据库导出、SQL 文件导出和数据传输任务的支持
- 引入了新的状态和错误处理机制
- 实现了任务的重叠检查,防止同时进行相同目标表的数据传输
- 更新了 API 调用以支持新的任务类型
- 增加了相应的国际化文本
- 添加了单元测试以确保新功能的正确性
2026-06-26 18:50:25 +08:00
林剑凛 79c2cd8bdc
fix: launch Codex npm shim through node on Windows (#1960) 2026-06-26 18:48:46 +08:00
zipg 90bed417e9
fix: 完善 SQL 表名和字段语义诊断 (#1961)
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-26 18:47:10 +08:00
t8y2 2b99cd3b62 feat(diagram): add modeled ERD relationships 2026-06-26 18:44:47 +08:00
t8y2 3e8c4273b2 ci: skip unaffected jobs via paths-filter 2026-06-26 18:29:32 +08:00
t8y2 c0e85685b1 ci: reduce rust debuginfo to line-tables-only for faster builds 2026-06-26 18:24:35 +08:00
t8y2 23ee0a42a3 fix(connection): clone url_params to avoid partial move in influxdb test 2026-06-26 18:17:51 +08:00
HaoNan Ye 11ed3a0d3b
fix(postgres): include public schema in search_path for PostGIS functions (#1817) 2026-06-26 17:58:07 +08:00
林剑凛 bebed75265
fix(check): stabilize pnpm check on Windows 2026-06-26 17:55:58 +08:00
t8y2 d024ac3bf4 fix(kingbase): use catalog column metadata 2026-06-26 17:47:25 +08:00
Oleksandr Liakhevych def59969e5
fix(ai): fix Windows Codex CLI launch with npm-installed shims (#1953) 2026-06-26 17:45:45 +08:00
zipg de10296f69
fix: 修复 AI SQL 方言上下文 (#1943)
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-26 17:40:41 +08:00
zipg 8bcfb937a8
fix: 优化主题切换交互 (#1945)
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-26 17:35:12 +08:00
ptma fdd7d2095b
feat(influxdb): support influxdb epoch parameter (#1946) 2026-06-26 17:33:58 +08:00
t8y2 a1dba7a18c fix(issue-template): merge error logs into description checklist 2026-06-26 17:30:19 +08:00
t8y2 63fad1398b fix(issue-templates): standardize issue titles by removing emojis 2026-06-26 17:23:23 +08:00
t8y2 2268771533 fix(structure): refine editor input focus styles 2026-06-26 17:15:27 +08:00
林剑凛 9a2cf6835c
fix(check): run pnpm checks on Windows (#1941) 2026-06-26 17:15:01 +08:00
t8y2 2f06ca5fe3 fix(data-compare): batch sync execution 2026-06-26 17:10:26 +08:00
林剑凛 895f116b04
fix(ai): resolve Codex CLI on Windows (#1935) 2026-06-26 17:06:24 +08:00
t8y2 f3dfa3e1a7 fix: 修复 webdav 文件格式以恢复 CI 检查 2026-06-26 16:52:13 +08:00
zipg 04021d39f8
fix: 优化单元格详情布局 (#1920)
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-26 16:13:18 +08:00
LRcoding f963a6e793
fix(app): decode imported connection link names (#1930)
Co-authored-by: zero <zero@zeroMacmini.local>
2026-06-26 16:09:17 +08:00
zipg 2aba40ecb7
fix: 修复 SQL Server 查询结果分页重复第一页 (#1927)
Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-26 15:58:10 +08:00
t8y2 4e5cb62102 fix(kingbase): list views and routines 2026-06-26 15:48:18 +08:00
t8y2 f1c4604aeb fix(xugu): normalize varying column types 2026-06-26 15:38:21 +08:00
二丫讲梵 861200d664
fix: 修复webdav自动定时同步异常的问题 (#1921) 2026-06-26 15:35:48 +08:00
t8y2 cdfe576024 fix(structure): load dynamic data type options 2026-06-26 15:22:33 +08:00
t8y2 5ffac129e0 fix(grid): 调整列排序菜单顺序,数据库排序置顶 2026-06-26 15:05:31 +08:00
zipg 49e79eb934
feat: 支持 SQL 参数查询
* Fix: 支持 SQL 参数查询

* Fix: 修复前端格式检查

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
Co-authored-by: t8y2 <1156263951@qq.com>
2026-06-26 14:19:05 +08:00
林剑凛 9bed864e61
feat(grid): show selection summary (#1903) 2026-06-26 14:17:04 +08:00
zipg 74d57982c9
feat: 执行查询前提示选择数据库
* Improve:执行查询前提示选择数据库

* Fix:补齐连接配置测试字段

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-26 14:03:27 +08:00
zipg dbfe284ca9
fix: 修复侧边栏定位表节点异常及连接配置测试字段缺失
* Fix: 修复侧边栏定位表节点异常

* Fix: 修复连接配置测试字段缺失

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-26 13:59:29 +08:00
zipg 37d0dd7ad7
fix: 修复 PostgreSQL 字段名高亮异常
* Fix:修复 PostgreSQL 字段名高亮异常

* Fix:补齐连接配置测试字段

---------

Co-authored-by: staff <staff@qimaos-MacBook-Pro.local>
2026-06-26 13:27:40 +08:00
jischeng 21a07651db
fix(starrocks): detect primary keys via information_schema.COLUMNS
* fix(starrocks): detect primary keys via information_schema.COLUMNS

The Doris family (StarRocks/Doris) loaded columns through `SHOW COLUMNS`
for performance (perf(doris) commit 69ecde8f). However StarRocks reports
the `Key` column as `YES`/`NO` instead of MySQL's `PRI`, so `is_primary_key`
was never set and the data grid always showed "无主键定位" (keyless edit
warning) for tables that actually have a primary key.

Switch to `get_columns`, which queries information_schema.COLUMNS first —
where `COLUMN_KEY = 'PRI'` correctly identifies primary keys (and only real
primary keys, not duplicate-key sort columns) — and still falls back to
`SHOW COLUMNS` when information_schema is unavailable.

Verified against a live StarRocks connection: information_schema.COLUMNS
reports `COLUMN_KEY = 'PRI'` for primary-key columns while `SHOW COLUMNS`
reports `Key = YES`. Paimon catalog tables are unaffected (both paths
report no primary key for them).

* fix(test): add redis_scan_page_size to ConnectionConfig test helpers

`d815a16b` (feat(redis): move scan page size to connections) added
`redis_scan_page_size` to `ConnectionConfig` but did not update several
struct-literal test helpers, so `cargo clippy --workspace --all-targets`
fails with `missing field redis_scan_page_size`. This is a pre-existing
breakage on `main` (CI has been red since that commit) and is unrelated to
this PR's actual change; included here only to unblock CI.

Helpers fixed here:
- src-tauri/src/commands/connection.rs (`mongodb_config`)
- crates/dbx-web/src/routes/connection.rs (`sqlite_config`)
2026-06-26 13:25:40 +08:00
林剑凛 41f2468313
feat(objects): support object browser column resizing 2026-06-26 13:23:17 +08:00
lexmin0412 0e1d2dd32e
feat(redis): add column sorting for Hash field/value view (#1789) 2026-06-26 13:22:00 +08:00
Abeautifulsnow 5f2b24d700
fix(ai): enforce SQL task contracts structurally instead of keyword heuristics
* fix: enforce agent task contracts

* fix(ai): enforce SQL task contracts structurally
2026-06-26 13:18:49 +08:00
jischeng 82fd078c10
fix(mysql): health-check pooled connection before DDL query
* fix(mysql): health-check pooled connection before DDL query

`mysql_ddl` fetched a connection with a raw `pool.get_conn()` and issued
`SHOW CREATE TABLE` directly, unlike other read paths (`get_columns`,
`list_indexes`, ...) which go through `get_conn_with_health_check`. A
pooled connection that went stale while idle (server closed it after its
idle timeout, NAT/firewall dropped the TCP state, ...) would then fail on
the first DDL request after a period of inactivity, surfacing a low-level
connection error that a manual refresh would mask.

Route `mysql_ddl` through `get_conn_with_health_check` so stale
connections are pinged and replaced before the query runs, matching the
rest of the MySQL metadata path.

* fix(test): add redis_scan_page_size to ConnectionConfig test helpers

`d815a16b` (feat(redis): move scan page size to connections) added
`redis_scan_page_size` to `ConnectionConfig` but did not update several
struct-literal test helpers, so `cargo clippy --workspace --all-targets`
fails with `missing field redis_scan_page_size`. This is a pre-existing
breakage on `main` (CI has been red since that commit) and is unrelated to
this PR's actual change; included here only to unblock CI.

Helpers fixed here:
- src-tauri/src/commands/connection.rs (`mongodb_config`)
- crates/dbx-web/src/routes/connection.rs (`sqlite_config`)
2026-06-26 13:16:52 +08:00
LRcoding eb664dba4c
fix(core): support fuzzy table search 2026-06-26 13:15:01 +08:00