t8y2
70db0aa62c
refactor(ci): switch 1Panel appstore to community repo and manual trigger
2026-05-11 11:41:51 +08:00
t8y2
9413df686e
fix(grid): Enter 键优先选中自动补全建议项 ( closes #202 )
...
WHERE 和 ORDER BY 输入框中,有自动补全建议显示时按 Enter 键
现在会选中当前高亮的建议项,而不是直接执行查询。
2026-05-11 11:00:02 +08:00
t8y2
f456ddd979
perf: full-stack performance and security hardening
...
Frontend performance:
- Debounce DataGrid search (150ms) and replace O(n) row wrapping with index array
- Replace QueryStore deep watcher with targeted field-level persistence snapshot
- Extract shared nodeConfig computed in TreeItem (eliminates 15x redundant getConfig calls)
- Clear tab result data on close to free memory
- Add LRU eviction for completion caches (50 entry cap)
- Replace savedSql version string join with numeric counter
Memory leak fixes:
- Store Tauri event unlisten handles and clean up on unmount
- Clean up DataGrid search timer on unmount
Backend security & resource management:
- Add 50MB request body size limit
- Reject file uploads >100MB and SQL files >200MB
- Clean up SSE channels after transfer/import completes
- Recover from poisoned mutex instead of panicking
- Delete temporary upload files after preview
- Validate SQL file paths to prevent directory traversal
2026-05-11 00:18:09 +08:00
t8y2
bafb424b23
perf: full-stack performance optimization
...
Frontend:
- Debounce queryStore tab persistence (remove flush:sync deep watcher)
- Eliminate unnecessary object spreading in connectionStore error handling
- Use in-place delete for completion cache invalidation
- Deduplicate schema cache prefix API calls
- Split echarts, reka-ui, marked, @codemirror/commands into separate chunks
- Lazy-load xlsxExport and markdownTable in DataGrid
- Lazy-load marked parser in UpdateDialog
Backend:
- Replace tokio::sync::Mutex with RwLock for AppState connections/configs
(60+ concurrent reads no longer block each other)
- Parallelize PostgreSQL DDL metadata queries with tokio::try_join!
2026-05-10 23:23:22 +08:00
t8y2
dbfe69572e
perf(build): make DuckDB bundled compilation optional
...
Add duckdb-bundled feature gate (default on) to dbx-core. Local dev
can use --no-default-features to skip DuckDB C++ compilation (~170s),
while CI/Docker keeps the default bundled build.
2026-05-10 22:48:35 +08:00
t8y2
417b74cc51
refactor(ci): trigger Homebrew/Scoop publish on release event
...
Move packages job from release.yml to publish-packages.yml, triggered
by release published/released events. Keeps workflow_dispatch as a
manual fallback. Now all external publishing (Homebrew, Scoop, 1Panel,
QQ notify) triggers at the same time: when a prerelease is promoted
to a full release.
2026-05-10 22:23:25 +08:00
t8y2
6d513afc16
feat(objects): show routines in object browser
2026-05-10 21:14:16 +08:00
t8y2
d4afbc7b58
feat(external): add tabular source foundation
2026-05-10 20:52:03 +08:00
t8y2
d917842fca
perf(oracle): speed up initial table loading
2026-05-10 20:47:54 +08:00
t8y2
61bd7480f4
fix(oracle): refresh schema cache and complete table lists
2026-05-10 20:05:11 +08:00
BlueSkyXN
5975a0b0b7
feat(external): add tabular source foundation
2026-05-10 19:50:34 +08:00
t8y2
3e321d869c
fix(oracle): decode NCHAR values correctly
2026-05-10 19:09:06 +08:00
t8y2
f5b36a0f60
feat(history): track database activity
2026-05-10 14:18:20 +08:00
t8y2
10bfede1c7
feat(jdbc): add optional JDBC plugin support
2026-05-10 12:57:38 +08:00
t8y2
f4f3193994
fix(sql): detect result queries after comments
2026-05-10 00:48:24 +08:00
t8y2
b013a2ac29
feat(sql): persist SQL library in app database
2026-05-10 00:41:17 +08:00
t8y2
afb177db85
fix(connection): hide system database objects
2026-05-09 19:50:28 +08:00
t8y2
9c71442f43
feat(connection): add configurable SSH timeout
2026-05-09 19:34:30 +08:00
t8y2
5c52560368
feat(schema): 增加数据库对象列表缓存
2026-05-09 17:36:20 +08:00
t8y2
de6fecb18b
fix: restore workspace build and refine grid menu
2026-05-09 17:07:52 +08:00
t8y2
fc460a3f78
fix(mysql): run transaction edits with raw SQL
2026-05-09 16:30:46 +08:00
t8y2
f9993dd3f8
perf(query): stream rows with result limit
2026-05-09 15:57:55 +08:00
t8y2
af029daf57
fix(db): normalize default database handling
2026-05-09 15:53:06 +08:00
t8y2
5cffe12014
fix(deps): switch rust-gaussdb from local path to git dependency
2026-05-09 15:26:30 +08:00
Bacon2994
ce2f97a175
fix(sidebar): 修复默认库过滤数据库树 ( #175 )
2026-05-09 14:42:24 +08:00
t8y2
5c911f39ff
fix(ui): prevent tab scroll arrow overlapping with text
...
Widen the scroll button gradient area and use a solid-to-transparent
gradient (40% opaque) instead of a semi-transparent via stop, so tab
text is fully hidden behind the arrow overlay.
2026-05-09 14:26:31 +08:00
t8y2
1a1f128f2b
feat: Redis browser overhaul — Navicat-style table, editing, and pagination
...
- Unified key table with columns: key, type, value preview, size, TTL
- Top-bottom split layout: key table above, value detail below
- Virtual scrolling via RecycleScroller for large key sets
- ZSet editing: add/remove members with scores
- TTL inline editing: click badge to modify expiration
- Batch key deletion with checkbox selection
- Paginated loading for Hash/Set/ZSet/List values (HSCAN/SSCAN/ZSCAN)
- Debounced auto-search (400ms) for key filtering
- Value previews fetched during key scan for instant display
2026-05-09 11:45:50 +08:00
t8y2
dfd4d2d99d
feat: auto-detect OceanBase Oracle mode and use Oracle-style schema queries ( #155 )
...
Introduce MysqlMode enum to distinguish Normal/Bare/OceanBaseOracle MySQL
connections. On connect, if driver_profile contains "oceanbase", detect
tenant mode via SHOW VARIABLES LIKE 'ob_compatibility_mode'. When Oracle
mode is detected, schema queries use ALL_TABLES/ALL_TAB_COLUMNS/etc.
2026-05-08 22:57:48 +08:00
t8y2
000e16e633
fix: remove EXISTS filter from GaussDB list_schemas for consistency ( #154 )
...
The EXISTS check only showed schemas containing tables, hiding empty
schemas that PostgreSQL driver would display. This caused a regression
for openGauss users after switching to the native GaussDB driver.
2026-05-08 20:20:52 +08:00
t8y2
85be58822e
fix(oracle): Oracle 11g compatibility and sidebar improvements
...
- Rewrite FETCH FIRST to ROWNUM for Oracle 11g (no 12c+ syntax)
- Filter APEX_*, FLOWS_*, $-prefixed system schemas from sidebar
- Set schema prefix on table nodes for schema-aware databases
- Use all_objects instead of all_tables+all_views (4x faster)
- Disable statement cache to avoid stale cursor issues
- Update rust-oracle with streaming TTC, drain fixes
2026-05-08 18:54:24 +08:00
Bacon2994
3b4b6c1ff7
fix(query): 修复查询结果表头提示与全量排序 ( #164 )
...
* fix(grid): 修复查询结果表头提示与排序
修复 MySQL 查询结果列元数据取错库名的问题,并补齐查询结果全量排序链路,避免表头提示与排序行为失效。
* fix(query): 修复结果排序重复列名报错
2026-05-08 18:31:09 +08:00
t8y2
c036dd19e4
feat: support middle-click to close tabs ( #162 )
2026-05-08 17:19:31 +08:00
t8y2
edda036f3c
fix: add type fallback for MySQL to prevent all-NULL display ( #40 )
...
Add i32/i16 type decoding and try_get_unchecked fallback to
mysql_value_to_json(), fixing all columns showing NULL on older
MySQL versions (e.g. 5.6) where sqlx type-checked decoding fails.
2026-05-08 17:01:32 +08:00
t8y2
92fe47b913
fix: pass SQL directly in AI execute to avoid stale state ( #153 )
...
When executing SQL from the AI panel, pass the SQL string directly to
tryExecute() instead of relying on the executableSql computed property,
which could use stale selectedSql or cursorPos values.
2026-05-08 16:45:01 +08:00
t8y2
ae890092dd
fix(ci): use pull_request_target for fork PR secret access
2026-05-08 16:07:48 +08:00
t8y2
6dc6e15ff3
ci: add auto PR review with DeepSeek
2026-05-08 15:40:49 +08:00
skyler
de244a0b12
Merge pull request #149 from Bacon2994/codex/redis-rdm-consistency
...
feat(redis): 修复全库键浏览与二进制展示
2026-05-08 11:34:20 +08:00
t8y2
9fd16e3c1f
perf(grid): pre-stringify JSON/JSONB values and truncate cell display
...
Serialize JSON/JSONB as strings in Postgres and MySQL drivers to avoid
repeated JSON.stringify in the render loop. Truncate cell display to
256 chars so the browser doesn't lay out huge text nodes on scroll.
2026-05-08 11:23:31 +08:00
t8y2
9683826b15
fix: support MongoDB replica set connections via SSH tunnel ( #151 )
...
Rewrite MongoDB URI to use tunnel endpoint and add directConnection=true
when connecting through SSH, so the driver doesn't try to discover
unreachable replica set members.
2026-05-08 11:09:46 +08:00
Bacon2994
3106dfce6f
fix(redis): 避免反斜杠字符串误判为二进制
2026-05-08 11:09:25 +08:00
Bacon2994
d6f5c25c17
fix(redis): 优化 UTF-8 展示与提示文案
2026-05-08 10:31:51 +08:00
Bacon2994
b669efb5ff
style(redis): 修正 Rust 格式检查
2026-05-08 10:11:44 +08:00
Bacon2994
0fb6aebd59
feat(redis): 修复全库键浏览与二进制展示
2026-05-08 10:06:16 +08:00
t8y2
198ac54355
feat: add GitHub proxy endpoints for faster update checks
...
Add hwdns.net and gh-proxy.org as proxy fallbacks before direct GitHub
access, with 10s timeout per endpoint. Significantly improves update
check speed in regions with slow GitHub connectivity.
2026-05-07 21:07:55 +08:00
t8y2
2083f48add
fix: preserve bigint precision for values exceeding JS safe integer range
...
Closes #137
2026-05-07 18:12:23 +08:00
skyler
cf25b7d6d4
Merge pull request #139 from rarnu/feat/edit-on-resultset
...
add: 增加对于查询得到的结果集直接进行数据编辑的功能
2026-05-07 17:44:48 +08:00
rarnu
cacaf4d7a2
1. Rust 事务连接池问题 - 用 pool.acquire() 获取专用连接,所有语句在同一物理连接上执行
...
2. BEGIN 失败静默回退 - 直接返回错误,不再静默降级
3. queryStore.ts - 清除了 25+ 条 console.log,合并了两个分支的重复逻辑
4. DataGrid.vue - shouldUseTransaction() 改为 computed 属性 useTransaction
2026-05-07 16:55:32 +08:00
t8y2
0f904fc2a8
refactor: rename oracle-rs to rust-oracle and unify to git source
2026-05-07 15:41:39 +08:00
rarnu
814fda7433
add: 增加对于查询得到的结果集直接进行数据编辑的功能。当查询是单表且包含主键(有联合主键时包含全部主键)时,可以在结果集内双击单元格修改数据,修改结果以事务形式提交或回滚。
2026-05-07 15:09:59 +08:00
t8y2
75d7edda27
fix: add missing comment field to TableInfo initializers
...
The comment field was added to TableInfo but not updated in
clickhouse, gaussdb, oracle, sqlite, sqlserver, dm, and schema drivers.
2026-05-07 14:35:09 +08:00