Commit Graph
265 Commits
Author SHA1 Message Date
t8y2 1f666f99b3 fix(duckdb): support multiple schemas beyond default "main"
DuckDB was not recognized as a schema-aware database, so only the
default "main" schema was shown in the object tree and schema selector.
Added DuckDB to schema-aware type lists, implemented schema listing via
information_schema.schemata, and replaced hardcoded table_schema = 'main'
with parameterized queries.
2026-05-24 10:26:09 +08:00
t8y2 065f0a4234 fix(sql): refine current statement cursor resolution
Treat blank-line-separated statements as part of the previous statement when the cursor sits on the semicolon boundary.\nKeep same-line cursor navigation moving to the next statement.\nAdd regression coverage for the cursor boundary cases described in issue #427.
2026-05-24 01:12:31 +08:00
t8y2 3e051d61a7 fix(dbx-core): migrate mysql driver to mysql_async
Add mysql_async with client_ed25519 support for MySQL and MariaDB connections.\nSwitch MySQL transaction control and schema metadata reads away from sqlx MySQL APIs.\nPreserve connection compatibility by stripping unsupported URL params and handling nullable metadata safely.
2026-05-24 00:53:27 +08:00
t8y2 777cb11081 fix(sqlite): rewrite if()→IIF() and substring()→substr() for cross-DB view compatibility 2026-05-23 23:26:32 +08:00
t8y2 26878e749a fix(oracle): default to service_name when oracle_connection_type is unset
The recent fix to respect explicit JDBC URLs in the Oracle agents exposed a
default mismatch: the Rust side generated SID-format URLs when the config
field was missing, but the old Java fallback always used service_name format.
Switch the default and retry logic so existing connections without an explicit
oracle_connection_type keep working.
2026-05-23 15:07:28 +08:00
t8y2 d326519247 fix(core): reduce async blocking and allocation hotspots 2026-05-23 14:45:45 +08:00
t8y2 ccfc3cf92c fix(postgres): remove trailing comma in SQL query for table comments 2026-05-23 09:25:53 +08:00
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 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 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 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 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 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