Commit Graph

64 Commits

Author SHA1 Message Date
rarnu 814fda7433 add: 增加对于查询得到的结果集直接进行数据编辑的功能。当查询是单表且包含主键(有联合主键时包含全部主键)时,可以在结果集内双击单元格修改数据,修改结果以事务形式提交或回滚。 2026-05-07 15:09:59 +08:00
t8y2 6801048b40 feat: replace GaussDB ODBC driver with native rust-gaussdb
Drop ODBC dependency for GaussDB, use rust-gaussdb for native
SHA256 SASL authentication over TCP. Zero extra setup for users.
2026-05-07 03:34:19 +08:00
t8y2 b79e5b53bc feat: add GaussDB ODBC support and flatten connection list
- Add GaussDB/openGauss support via ODBC (resolves #106)
- Use pg_catalog queries instead of information_schema for compatibility
- Share ODBC environment across drivers with auto ODBCSYSINI detection
- Fix ODBC error message false positive on "Driver" keyword match
- Merge connection dialog categories into a single flat list
- Remove duplicate DDL button from data grid footer
2026-05-07 02:18:20 +08:00
t8y2 4bf4f3b77f feat: add DM (Dameng) database support via ODBC
Connect to DM8 databases using the odbc-api crate with unixODBC.
Includes schema browsing, query execution, DDL generation,
and full frontend integration with download link to DM ODBC driver.
2026-05-07 01:02:56 +08:00
t8y2 b6a39c1fa0 feat(query): set schema context (search_path) before query execution (#113)
Add schema selector to the editor toolbar for schema-aware databases
(PostgreSQL, SQL Server, Oracle). When a schema is selected, the backend
sets the appropriate search_path before executing queries so users no
longer need to write schema-qualified table names.
2026-05-06 18:22:41 +08:00
t8y2 e315c4ad36 feat(oracle): add SYSDBA authentication support
Switch oracle-rs to t8y2/oracle-rs fork with SYSDBA support.
Add sysdba field to ConnectionConfig and a checkbox in the
Oracle connection dialog to enable connecting as SYS with
SYSDBA privileges.
2026-05-06 13:23:56 +08:00
t8y2 41445ff474 chore: add rustfmt.toml and apply unified code formatting 2026-05-05 14:16:18 +08:00
t8y2 edcdd652ae fix(connection): reduce failed connection timeout
Closes #86
2026-05-05 14:13:07 +08:00
t8y2 f9a9945f1f feat: migrate storage from JSON files to SQLite
Replace all JSON file storage (connections, secrets, history, AI config,
conversations, sidebar layout) with a single SQLite database (dbx.db).
Auto-migrates existing JSON data on first launch, renaming old files to
.bak. Remove keyring dependency — passwords now stored in SQLite.
2026-05-05 04:48:45 +08:00
t8y2 cf4f25fd52 feat: extract dbx-core crate for web deployment support
Refactor all database drivers, query execution, schema operations, and
business logic into a shared `dbx-core` crate. The Tauri desktop app
becomes a thin shell delegating to dbx-core, enabling future web and
CLI frontends to reuse the same core.
2026-05-05 03:16:24 +08:00
t8y2 9ced92fdc8 fix: expand tilde in SQLite/DuckDB file paths to home directory
Closes #84
2026-05-04 21:10:34 +08:00
t8y2 bc7f521604 feat: add connection group management and sidebar layout persistence 2026-05-04 13:52:42 +08:00
t8y2 ae21053f69 feat: add execute_multi command and update query handling for multiple results 2026-05-04 02:55:19 +08:00
Agent-43 81bd188972 Fix SQLite UNC path connections 2026-05-03 23:28:45 +05:30
yavon007 4e1b35186b feat: add index type, included columns, filter, and comment support
- Add filter, index_type, included_columns, and comment fields to IndexInfo
- PostgreSQL: query pg_am for index type, use indnkeyatts to split key/included columns, retrieve index comments via obj_description()
- SQL Server: add type_desc, filter_definition, included columns via is_included_column
- MySQL: add INDEX_TYPE from information_schema.STATISTICS
- Oracle: add INDEX_TYPE from ALL_INDEXES
- DDL generation: add USING (PostgreSQL), type prefix + INCLUDE + WHERE (SQL Server), COMMENT ON INDEX (PostgreSQL)
- Frontend: update types, state mapping, SQL generation, and i18n translations
2026-05-03 20:10:35 +08:00
yavon007 b88e1b8ccb fix: improve column type precision and SQL correctness across all databases
- PostgreSQL: rewrite column query from information_schema to pg_attribute for accurate type info via format_type(atttypid, atttypmod); extract character_maximum_length from atttypmod for varchar/bpchar; fix execute_query with persistent(false) and empty result fallback
- SQL Server: reconstruct column types with precision (varchar(max), decimal(p,s), datetime2(p)); stop dividing nvarchar/nchar CHARACTER_MAXIMUM_LENGTH by 2
- MySQL: use COLUMN_TYPE instead of DATA_TYPE for full type definitions; add CHARACTER_MAXIMUM_LENGTH; fix ONLY_FULL_GROUP_BY with MIN(NON_UNIQUE)
- Oracle: add CHAR_LENGTH/DATA_LENGTH for column type precision; fix INDEX_OWNER join to prevent cartesian product
- SQLite: fix PRAGMA injection via double-quote escaping; detect primary key indexes via origin column
2026-05-03 20:10:35 +08:00
t8y2 53df4e56cb feat: MCP bridge enhancements — window focus, execute-query, markdown output
- Auto-focus DBX window when MCP opens a table or executes a query
- Ensure connections are loaded before handling MCP events
- Add /execute-query bridge route and dbx_execute_and_show tool
- Format all tool responses as markdown tables (less tokens, more readable)
- Extract shared bridgeRequest helper to reduce duplication
2026-05-03 14:50:44 +08:00
t8y2 aa59c26fa2 feat: add MCP bridge for AI agent integration
Localhost HTTP listener (dynamic port) allows MCP Server and other AI agents
to open tables directly in DBX UI via Tauri events.
2026-05-03 14:35:48 +08:00
skyler 1b8d56a43b
Merge pull request #65 from SuLea-IT/codex/field-lineage
[codex] Add field lineage viewer and review fixes
2026-05-03 11:18:36 +08:00
SuLea-IT 4d6cd5351c fix: address lineage review feedback 2026-05-03 06:02:39 +08:00
yavon007 58ca9a3b21 feat: add SSH key passphrase field and file picker for key path
- Add ssh_key_passphrase field to ConnectionConfig model with full keyring lifecycle
- Pass passphrase to russh load_secret_key for encrypted SSH keys
- Add native file picker (FolderOpen icon) next to SSH key path input
- Add password-type input for key passphrase in connection dialog
- Make connection dialog form scrollable for short windows
- Fix alignment of key path input and browse button
- Add i18n keys (en + zh-CN)
2026-05-03 04:39:03 +08:00
t8y2 f598b5a91c feat: enhance MySQL connection handling with bare option and optimize component imports 2026-05-02 23:25:39 +08:00
t8y2 44c98ba335 feat: add support for bare MySQL connections and improve SQL query handling for doris 2026-05-02 21:51:50 +08:00
t8y2 eab5556b6f feat: enhance AI streaming with reasoning support and UI updates 2026-05-02 20:43:49 +08:00
SuLea-IT 2ebd72b3b7 feat: import table data from files 2026-05-02 19:04:41 +08:00
t8y2 c6f9bb89ec fix: support for ClickHouse database username and password configuration 2026-05-02 17:25:16 +08:00
t8y2 40a67434ee feat: use file-based secret store in debug mode to avoid macOS Keychain prompts
During development, every Rust recompile changes the binary signature,
causing macOS to invalidate Keychain "Always Allow" and prompt for the
password on every hot reload. Switch to a JSON file store in debug
builds so dev workflow is uninterrupted; release builds still use the
system keychain.
2026-05-02 16:45:17 +08:00
skyler 0273f9f65d
Merge pull request #50 from kingcanfish/fix/numeric-precision-display
fix: resolve PostgreSQL/MySQL/SQL Server NUMERIC/DECIMAL display issues
2026-05-02 10:36:27 +08:00
kingcanfish d1075c0042
fix: resolve PostgreSQL/MySQL/SQL Server NUMERIC/DECIMAL display issues
- Add rust_decimal feature to sqlx and tiberius for proper Decimal type handling
- Fix try_get_unchecked<String> causing NULL or garbled output for numeric types
- Add numeric_precision and numeric_scale to ColumnInfo for all database drivers
- Update frontend to display precision (e.g., numeric(20,6)) in column headers
- Fix typeColorClass to handle type names with precision suffix

Root cause: PostgreSQL binary protocol sends NUMERIC as PgNumeric binary format,
not UTF-8 text. try_get_unchecked<String> attempted to decode binary bytes as UTF-8,
causing decode failures (NULL) or garbage characters (乱码).
2026-05-02 10:14:01 +08:00
skyler 8b153bef0d
Merge pull request #49 from SuLea-IT/codex/sql-file-execution
Add SQL file execution workflow
2026-05-02 09:47:33 +08:00
SuLe 518bdc2c38 support sql file dump splitter cases 2026-05-02 05:42:34 +08:00
SuLe 69cd5831a1 skip comment-only sql file statements 2026-05-02 05:06:14 +08:00
SuLe 41066476be harden sql file execution 2026-05-02 04:57:41 +08:00
SuLe 7a3b356379 emit sql file io errors 2026-05-02 04:51:10 +08:00
SuLe 15fa5b0d2c execute sql files with progress 2026-05-02 04:47:43 +08:00
SuLe 33705b9cbb speed up query timeout test 2026-05-02 04:41:09 +08:00
SuLe ed475f1d1b share query execution helper 2026-05-02 04:36:44 +08:00
SuLe f862a27858 fix streamed comment splitting 2026-05-02 04:29:10 +08:00
SuLe 893c17ef9f add sql file statement splitter 2026-05-02 04:24:52 +08:00
SuLe d14329ea15 store connection secrets in system keyring 2026-05-02 03:37:52 +08:00
t8y2 3f71cd6dfa feat: enhance AI functionality with conversation management and cancellation 2026-05-02 03:05:02 +08:00
t8y2 557897f428 feat: enhance MySQL connection handling and update connection dialog for Doris, SelectDB, and StarRocks 2026-05-01 19:36:17 +08:00
t8y2 6e0fdf1c92 feat: add ssh_expose_lan configuration and localization support 2026-05-01 15:37:52 +08:00
t8y2 65cd285567 feat: add AiApiStyle support and integrate into AI completion and streaming functions 2026-05-01 12:10:32 +08:00
t8y2 b43e67b4fc feat: add support for Doris, StarRocks, and Redshift databases in connection handling and UI 2026-05-01 01:26:35 +08:00
t8y2 75244339e4 feat(postgres): enhance JSON serialization for temporal and numeric types 2026-05-01 00:13:42 +08:00
SuLea-IT 806a855ef0
Add query cancellation controls (#41)
Co-authored-by: SuLe <sule@SuLedeMacBook-Air.local>
Co-authored-by: skyler <77960507+t8y2@users.noreply.github.com>
2026-05-01 00:05:15 +08:00
t8y2 c840ab4e45 feat: implement data transfer functionality with progress tracking 2026-05-01 00:00:59 +08:00
t8y2 1e15249da9 feat(ai): 添加流式数据处理和执行 SQL 功能 2026-04-30 21:46:57 +08:00
t8y2 9e7ed096b7 feat: add AI streaming functionality and enhance AI assistant features 2026-04-30 21:25:01 +08:00