Commit Graph

184 Commits

Author SHA1 Message Date
t8y2 dec3b7c116 fix(schema): list routines in object browser 2026-05-17 10:36:55 +08:00
t8y2 1bcfd02de1 feat: add Microsoft Access database support
Add Access as a new database type with agent-based connectivity,
UCanAccess JDBC URL parsing, backtick identifier quoting, file-path
connection dialog, and PNG icons for Access/GoldenDB/Vastbase.
2026-05-17 09:57:04 +08:00
t8y2 f4566221b1 feat(query): add paged result fetching 2026-05-17 00:10:18 +08:00
t8y2 e97e965ea1 fix: skip MySQL dump helper statements on import 2026-05-16 12:30:31 +08:00
t8y2 f4c7c1d764 fix: handle MySQL backup SQL import 2026-05-16 12:13:40 +08:00
t8y2 e9621ef06a Add TDengine support and editable grid handling 2026-05-16 11:33:42 +08:00
t8y2 3be6f4486a fix(jdbc): apply query execution context 2026-05-16 10:49:54 +08:00
t8y2 cec7d6d7ad fix(editor): suppress completion after punctuation 2026-05-15 20:20:44 +08:00
t8y2 793c244d40 feat(connection): auto-generate name when left empty
Allow saving connections without a name by generating one in the format
`{DbType}_{random4chars}` (e.g. Neo4j_a3f2). Update placeholder text
to inform users about auto-generation.
2026-05-15 20:20:44 +08:00
t8y2 048f629d21 feat(export): add table selection to database export 2026-05-15 18:56:23 +08:00
t8y2 38eba3956c fix(mysql): return rows for with queries 2026-05-15 18:33:32 +08:00
t8y2 08de206644 feat(sidebar): add visible database filters 2026-05-15 17:36:51 +08:00
t8y2 2973bb1cd5 feat: add Highgo (瀚高) database support
Add full support for Highgo database, a PostgreSQL-compatible Chinese
domestic database. Includes database type definition, connection dialog,
agent driver mapping, and database icon.
2026-05-15 14:35:19 +08:00
t8y2 c2da1f866c feat(objects): show functions and procedures in sidebar tree
Add list_objects support for agent-driven databases (Dameng, Oracle, etc.)
and ExternalDriver plugin connections. SQL Server dbo schema now uses
listObjects to display grouped object nodes including routines.

- Add list_objects RPC to JDBC agent plugin
- Add extract_agent and ExternalDriver branches in list_objects_core
- Add get_object_source support for agent connections
- Click function/procedure nodes to view source via object browser
- Fix duplicate tree node IDs when same name exists as view and function
2026-05-15 13:02:19 +08:00
t8y2 339081af35 fix(connection): use bare mysql options for oceanbase 2026-05-15 12:36:52 +08:00
t8y2 32dea89cba fix(plugin): prefer .bat over shell script on Windows
On Windows, when both `bin/dbx-jdbc-plugin` (Unix shell script) and
`bin/dbx-jdbc-plugin.bat` exist, always prefer the .bat file instead of
only falling back when the original path doesn't exist.
2026-05-15 11:29:35 +08:00
t8y2 901976bdac fix(mysql): auto fallback to ssl-mode=disabled on TLS handshake failure
MySQL 5.7 servers with older TLS versions (1.0/1.1) cause HandshakeFailure
when ssl-mode=preferred because the underlying TLS library requires 1.2+.
Now automatically retries with ssl-mode=disabled when handshake fails.

Closes #273
2026-05-15 00:23:19 +08:00
t8y2 6f1161e8a8 fix: add oracle.net.disableOob=true to agent JVM args for Oracle 19c compatibility
Oracle JDBC driver's Out-of-Band Break mechanism hangs on JDK 17+
due to stricter TCP Urgent Data handling. Disabling OOB resolves
connection timeouts with Oracle 19c.
2026-05-15 00:19:38 +08:00
t8y2 b6c88d7b65 feat: add persistent selected node highlight in sidebar tree
- Track selectedTreeNodeId in connection store
- Highlight any clicked tree node with focused (blue) / unfocused (gray) styles
- Use CSS :focus-within for automatic focus state switching
2026-05-14 21:52:06 +08:00
t8y2 bb766228e6 fix: use SELECT 1 for ClickHouse connection test and check response status 2026-05-14 20:58:08 +08:00
t8y2 febfbdb5a5 feat: migrate all downloads to R2 CDN with race_download
- Remove update.hwdns.net proxy, add dl.dbxio.com R2 CDN
- Remove deprecated race_github_proxies, replace with race_download
- Update Tauri updater endpoints to prioritize R2
- Migrate update check, JDBC plugin download to race_download
- Add R2 upload job to publish-packages workflow
2026-05-14 16:45:55 +08:00
t8y2 242720cc3c feat: use race_download with R2 for agent/JRE downloads 2026-05-14 16:45:55 +08:00
t8y2 6994b4549e feat: add R2 CDN race_download function and remove update.hwdns.net proxy 2026-05-14 16:45:55 +08:00
Abeautifulsnow 919c3d58c1
feat(redis): add key statistics tracking for database browser (#269)
## 背景说明
为 Redis 数据库浏览器增加键统计功能,显示已加载 key 数/总 key 数,
并在动态加载、删除、清空时实时更新。

## 修改内容
- 新增 \RedisDatabaseInfo\ 结构体(db + keys),替代原来的 \Vec<u32>\
- \list_databases\ 返回每个 db 的 key 数量(解析 INFO keyspace)
- \scan_keys_page\ 增加 DBSIZE 调用获取 total_keys
- 前端 TreeNode 增加 loadedKeyCount/totalKeyCount 字段
- 树节点标签动态显示 \db0 (loaded/total)\ 格式
- 新增 \updateRedisDbKeyStats\ 在加载/删除/清空时更新统计

## 测试
- 建议补充 list_keyspace_databases 解析异常输入的单测
- 建议补充 redisDbLabel 边界值测试
2026-05-14 16:24:46 +08:00
t8y2 7faa9ec818 fix(mongo): complete agent fallback for all connection paths
- Fix connect_db and test_connection to also fallback to agent when
  native driver fails with wire version error
- Route MongoDB agent through mongo_ops in schema.rs list_databases
- Update MongoDB legacy hint text to mention Driver Manager
2026-05-14 16:16:33 +08:00
t8y2 1e8ce6673f fix(postgres): use pg_catalog instead of information_schema for table/schema listing
information_schema views apply permission filtering that causes empty
results on openGauss/GaussDB for non-owner users. Switching to pg_catalog
(pg_class + pg_namespace) matches the behavior of Navicat and DataGrip.
2026-05-14 15:14:07 +08:00
t8y2 a0bcb1d889 feat(mongo): fallback to agent driver for pre-4.2 MongoDB
When native Rust MongoDB driver fails with wire version error,
automatically fall back to the Java agent driver which supports
older MongoDB versions. All mongo_ops route through agent RPC
when the connection pool is Agent-backed.
2026-05-14 15:04:02 +08:00
t8y2 88ad579a27 feat(mongo): add filter/sort support and fix table view editing
- Add filter and sort parameters to MongoDB find_documents across the
  full stack (driver, ops, tauri cmd, web routes, frontend API)
- Add find/sort input bar to MongoDocBrowser table view via DataGrid
  search-bar slot, matching WHERE/ORDER BY positioning
- Fix table view editing: allow cell editing when customSave is provided
  (bypasses primary key requirement for MongoDB)
- Fix replace_one WriteError 66 by removing _id from replacement doc
- Align action buttons (refresh, add row, commit) to the right in grid
2026-05-14 14:43:26 +08:00
t8y2 12fec968fe fix(grid): remove WHERE and ORDER BY input placeholders 2026-05-14 14:05:22 +08:00
t8y2 3c0d0fbad9 fix(postgres): sync client timezone on connect
Set PostgreSQL session timezone to the client's local timezone via
after_connect, matching Navicat's behavior. (closes #262)
2026-05-14 11:34:27 +08:00
yavon007 eefa054778
perf(redis): speed up key browser scans (#256) 2026-05-14 02:21:53 +08:00
t8y2 05effc8edf fix(informix): 支持表格直接编辑 2026-05-14 01:05:01 +08:00
t8y2 3d7b149e53 feat(agents): support system Java runtime 2026-05-13 23:30:55 +08:00
t8y2 298f57c160 refactor(core): centralize database capabilities 2026-05-13 22:14:21 +08:00
t8y2 e92f1ccdf5 feat(grid): replace toolbar search with Ctrl+F floating overlay
- Remove always-visible search box from toolbar
- Add floating search overlay triggered by Ctrl+F/Cmd+F
- Highlight matching cells in yellow, current match with ring
- Navigate matches with Enter/Shift+Enter
- Show match count (e.g. 1/5) in overlay
- Escape closes overlay and clears search
- Color WHERE label blue and ORDER BY label orange
2026-05-13 21:41:26 +08:00
t8y2 f3093ab91f fix(agent): tolerate non-utf8 driver output 2026-05-13 19:39:31 +08:00
t8y2 9dd184a26b fix(sqlserver): decode tinyint and datetime values 2026-05-13 17:33:30 +08:00
t8y2 adb320192a perf: add JVM flags for faster agent cold start
Use -XX:TieredStopAtLevel=1 and -XX:+UseSerialGC to skip C2
compilation and reduce GC init overhead on agent process startup.
2026-05-13 16:33:39 +08:00
t8y2 b4d1f4b04e perf: eliminate theme switch lag by suppressing CSS transitions
Disable all CSS transitions/animations during theme toggle so color
changes apply instantly instead of animating over 150ms. Also cache
Tauri window module import and set color-scheme for native UI elements.
2026-05-13 16:04:35 +08:00
t8y2 70becfd74f fix: split screenshot field from log field in issue templates
render: shell blocks image paste/drag — separate into a plain textarea
so users can attach screenshots directly.
2026-05-13 15:26:22 +08:00
t8y2 20d1fa724d fix: make AI stream cancel respond instantly via tokio::select
Replace AtomicBool polling (only checked between chunks) with
tokio::sync::Notify + tokio::select!, so the stop button takes
effect immediately even when the LLM is thinking.
2026-05-13 14:59:55 +08:00
t8y2 6be7170dfb fix: add Windows launcher for JDBC plugin (os error 193) 2026-05-13 14:27:47 +08:00
t8y2 fa0dfc9383 perf: race GitHub proxies concurrently for driver downloads and registry fetch
Replace sequential proxy fallback (up to 30s worst-case) with concurrent
racing via futures::select_ok, returning the first successful response.
Add list_installed_agents_local command for instant UI rendering with
async registry update. Fix missing useToast import in RedisValueViewer.
2026-05-13 14:18:28 +08:00
t8y2 321ebc2636 fix: support HTTPS and self-signed certs for Elasticsearch connections
ES 8.x enables HTTPS with self-signed certs by default. When SSL is
toggled on, use https:// scheme and accept invalid certificates.

Closes #234
2026-05-13 14:07:01 +08:00
t8y2 e87876c923 feat(driver-store): badge-style version/size, refresh button, fix dameng icon
- Show version and size as rounded badges instead of plain text
- Display remote version with amber badge when update available
- Add refresh button to clear registry cache and reload
- Add invalidate_agent_registry_cache Tauri command
- Fix dameng icon mapping (dameng -> dm)
2026-05-13 12:26:56 +08:00
t8y2 047e8fc2f1 fix: filter SQL completion tables 2026-05-13 11:01:59 +08:00
t8y2 7ce2cf2163 feat: add 12 new agent-driven databases, migrate GaussDB to agent
Add H2, Snowflake, Trino, Hive, DB2, Informix, Neo4j, Cassandra,
BigQuery, Apache Kylin, SunDB as new agent-driven database types.
Migrate GaussDB from native rust-gaussdb to JDBC agent.

Remove rust-gaussdb dependency. Total agent-driven databases: 17.
2026-05-13 09:47:22 +08:00
t8y2 c50323cd6c feat(agent): migrate Oracle to JDBC agent, add install progress bar and toast
- Migrate Oracle from rust-oracle to JDBC agent (ojdbc11)
- Delete oracle_driver.rs (567 lines) and rust-oracle dependency
- Add streaming download progress bar for driver/JRE installation
- Add toast notifications for install/uninstall success/failure
- Add "update available" badge in driver manager
2026-05-13 09:20:06 +08:00
t8y2 831883f156 perf(agent): use single execute_transaction RPC for batch commits 2026-05-13 05:34:01 +08:00
t8y2 26245514bb refactor: remove ODBC dependency entirely
DaMeng now uses JDBC agent instead of ODBC. Remove odbc-api crate,
ODBC_ENV static, unixodbc system dependency from CI, and ODBC library
bundling from macOS release builds. macOS no longer needs any brew
dependencies for development.
2026-05-13 05:27:56 +08:00