Commit Graph
281 Commits
Author SHA1 Message Date
t8y2 f68edb2516 fix(grid): remove virtual row memoization 2026-05-23 08:58:18 +08:00
t8y2 7a3ff3bff9 refactor(sql): move builders to Rust 2026-05-23 01:28:52 +08:00
t8y2 7d467064f1 fix(query): preserve agent large integers 2026-05-22 21:29:41 +08:00
t8y2 51662c692f feat(objects): default filter to tables and align context menu with sidebar (#416)
Object browser now defaults to showing tables when tables exist.
Table/view context menus match sidebar tree with structure editing,
export, import, diagram, data compare, truncate, empty, duplicate,
and copy name support.
2026-05-22 19:15:22 +08:00
t8y2 ebf8f674c0 fix(mysql): detect StarRocks primary keys 2026-05-22 18:37:28 +08:00
t8y2 d7dc4c959a feat(driver-store): add storage usage breakdown 2026-05-22 18:05:59 +08:00
t8y2 9c8586e39a fix(oracle): retry alternate connect descriptor 2026-05-22 17:43:57 +08:00
t8y2 1fab46bca3 fix(agent): support oracle 10g java runtime 2026-05-22 17:23:26 +08:00
t8y2 5ab0489127 fix(sqlserver): support named instances 2026-05-22 17:06:05 +08:00
t8y2 3f14585a2a feat(diff): move schema and data diff to Rust 2026-05-22 16:20:11 +08:00
t8y2 c91fbc9fd6 feat(export): move text exports to Rust 2026-05-22 15:41:33 +08:00
t8y2 209eff528d feat(query): move grid save prep to Rust 2026-05-22 15:31:50 +08:00
t8y2 56aeed79fc fix(mysql): support legacy routine metadata 2026-05-22 15:14:19 +08:00
t8y2 cb3e1d6e9f feat(query): move SQL editability analysis to Rust 2026-05-22 15:09:31 +08:00
t8y2 c736fe372a feat(export): move csv and xlsx generation to Rust backend 2026-05-22 14:56:40 +08:00
t8y2 0655d309d8 fix(db2): use schema tree mode for sidebar object loading 2026-05-22 14:52:12 +08:00
t8y2 1ef09e8975 fix(app-settings): persist and prune pinned tree nodes 2026-05-22 14:28:40 +08:00
t8y2 0e189ba0cc feat(editor): add SQL semantic diagnostics 2026-05-22 14:22:58 +08:00
t8y2 6c83b10b42 fix(mongo): preserve auth database for commands 2026-05-22 12:44:16 +08:00
t8y2 7353f126d8 chore(release): bump version to 0.5.18 2026-05-22 12:11:14 +08:00
t8y2 c1fc1c9b70 feat(objects): show object timestamps 2026-05-22 11:37:23 +08:00
t8y2 a29b95b9fa fix(app): keep tray preference persistence stable 2026-05-22 10:39:47 +08:00
t8y2 bc41936e48 feat(app): configure background tray behavior 2026-05-22 02:24:16 +08:00
t8y2 a08d2aaab9 fix(agents): align managed JRE with Java 21 drivers 2026-05-21 22:11:00 +08:00
t8y2 cc5a6c650d chore(release): bump version to 0.5.17 2026-05-21 19:19:43 +08:00
t8y2 528c3c3ffc fix(agent): open java sql module for timestamps 2026-05-21 18:48:20 +08:00
t8y2 b4e9e798f1 fix(connection): preserve Oracle SID fallback 2026-05-21 18:42:39 +08:00
t8y2 9622080e59 fix(connection): fallback to oracle-10g on listener errors 2026-05-21 18:23:39 +08:00
t8y2 ae50a6ec9e fix(mysql): run SHOW GRANTS via text protocol 2026-05-21 16:45:48 +08:00
t8y2 cb7682e932 fix(mysql): normalize temporal SQL literals 2026-05-21 14:14:38 +08:00
t8y2 73117255c6 fix(web): support offline driver zip import 2026-05-21 11:40:05 +08:00
t8y2 01572ebad7 chore(release): bump version to 0.5.16 2026-05-21 11:06:54 +08:00
t8y2 4f379be24a fix(connection): support SAP HANA tenant routing 2026-05-21 00:32:19 +08:00
t8y2 2310201a14 fix(mysql): preserve session timezone
Keep the server session timezone for standard MySQL connections unless the connection URL explicitly provides a timezone override. This avoids TIMESTAMP shifts during SQL import while preserving user-specified timezone parameters.
2026-05-20 18:58:50 +08:00
t8y2 fe6fead2dc fix(mysql): prevent crash when DELIMITER follows non-ASCII comments (#360)
parse_delimiter_command used str slicing (line[..10]) which panics on
non-char boundaries when the buffer contains multi-byte UTF-8 characters.
Also fixed DELIMITER detection to check only the last line of the buffer
instead of the entire accumulated content.
2026-05-20 16:22:00 +08:00
Abeautifulsnow 222ebefa6a feat(ai): add model list fetching in settings (#364)
- Add `ai_list_models` Tauri command and core support for fetching available models from OpenAI-compatible, Claude, and Ollama providers
- Replace manual model ID input with SearchableSelect in EditorSettingsDialog, including refresh button and loading state
- Add i18n translations for model list UI (en, es, zh-CN)
- Add tests for settings dialog layout and web driver management
2026-05-20 16:14:56 +08:00
yavon007 13424588b9 Support DBX connection deep links (#359)
* fix(mysql): avoid metadata collation conflicts

Split MySQL column and primary key metadata lookups so MariaDB and OceanBase do not join information_schema tables with incompatible collations.

* feat(grid): add invert column visibility action

* feat(grid): improve cell detail editing

* feat(grid): add keyboard cell navigation

* feat(grid): add column name copy in header tooltip

* feat(grid): improve transpose navigation

* feat(connection): support dbx connection deep links

* docs: document connection deep links

* fix(connection): harden deep link boolean handling
2026-05-20 16:10:14 +08:00
t8y2 c53caddc3f fix(sqlserver): route transaction control statements through simple_query
BEGIN TRANSACTION / COMMIT / ROLLBACK must not go through sp_executesql
(client.execute) because SQL Server raises error 266 when @@TRANCOUNT
changes inside sp_executesql. Route them through simple_query instead.
2026-05-20 13:36:08 +08:00
t8y2 c0d3a46b93 chore: bump version to 0.5.15 2026-05-20 11:14:12 +08:00
t8y2 bd727c32d0 fix(sqlserver): use BEGIN TRANSACTION instead of BEGIN for explicit transactions
SQL Server interprets bare "BEGIN" as a BEGIN...END block, not a
transaction start, causing syntax error when editing table data.
2026-05-20 11:08:44 +08:00
t8y2 abafa49acc fix(agent): bound read_agent_line to prevent OOM abort on large responses
Add a 512MB maximum response size limit to read_agent_line to prevent
unbounded memory allocation that could cause the process to SIGABRT
when the agent returns an unexpectedly large response.

Ref: #345
2026-05-20 10:49:11 +08:00
t8y2 ea19a24ec6 fix(mysql): retry without ssl on TLS close 2026-05-20 10:42:20 +08:00
t8y2 65b51e6c17 fix(core): harden plugin process IO 2026-05-20 10:32:06 +08:00
t8y2 f84335e986 fix(elasticsearch): parse aggregation query results into table format (#344)
Previously, aggregation queries (date_histogram, terms, etc.) with
`size: 0` returned empty results because the empty hits array was
matched but contained no documents, ignoring the aggregations data.
2026-05-20 10:12:20 +08:00
t8y2 98e2d03f64 feat(agent): support offline driver import via ZIP bundle and local JAR
Add two offline import methods for users behind corporate firewalls:
- ZIP offline bundle: import all drivers + JRE from a single ZIP file
- Single JAR import: import individual driver JARs per database type
2026-05-20 09:44:03 +08:00
yavon007 b9bcb90ac7 fix(mysql): avoid metadata collation conflicts (#341)
Split MySQL column and primary key metadata lookups so MariaDB and OceanBase do not join information_schema tables with incompatible collations.
2026-05-20 01:22:46 +08:00
t8y2 b446816bdc fix(agent): remove SHA-256 verification for driver downloads
R2 CDN cache inconsistency caused hash mismatches when registry
updated before jar files. Remove sha256 verification entirely —
the old field in registry JSON is silently ignored by serde.
2026-05-20 00:20:01 +08:00
t8y2 f702e71de0 chore: bump version to 0.5.14 and fix duplicate i18n key
- Bump version to 0.5.14 in package.json, Cargo.toml, tauri.conf.json
- Remove duplicate `copied` key in en/es/zh-CN locale files
2026-05-19 21:02:16 +08:00
t8y2 e8cbe6bbf0 fix(mysql): add COLLATE to get_columns JOIN for OceanBase compatibility
OceanBase MySQL mode uses different collations for information_schema
tables, causing "Illegal mix of collations" when joining COLUMNS with
KEY_COLUMN_USAGE. Explicit COLLATE utf8mb4_general_ci resolves this.

Closes #337
2026-05-19 18:36:47 +08:00
t8y2 c822c898c7 feat(sql): support MySQL DELIMITER syntax in statement splitter
Parse DELIMITER directives (e.g., DELIMITER //, DELIMITER $$) so
stored procedures, functions, and triggers with internal semicolons
are kept as single statements. Disable PostgreSQL dollar-quoting
when a custom delimiter is active to avoid conflicts.
2026-05-19 18:29:33 +08:00