Commit Graph
19 Commits
Author SHA1 Message Date
t8y2 f895bb4de5 fix: scope agent metadata by database 2026-05-26 11:51:58 +08:00
t8y2 fe2ecd60d2 feat: add ClickHouse TLS connection support 2026-05-25 21:07:22 +08:00
t8y2 896d19933e fix: preserve transfer metadata during table creation 2026-05-25 17:23:47 +08:00
t8y2 f874d98a9a fix: make pre-commit hook executable 2026-05-25 10:59:30 +08:00
t8y2 9008169dd1 fix: format PostgreSQL array values as {..} instead of JSON [..] in SQL export
PostgreSQL array columns were serialized as JSON arrays (e.g. [1,2,3])
by serde_json::Value::Array Display, producing invalid SQL literals like
'[1,2,3]' and '[]' instead of PostgreSQL's required '{1,2,3}' and '{}'.

Add format_pg_array_sql_literal helper and apply it to all three SQL
literal formatting paths: escape_value_typed (transfer), format_export_sql_literal
(database_export), and format_grid_sql_literal (data_grid_sql).
2026-05-25 10:59:30 +08:00
t8y2 98b34a4db2 fix: escape backslashes in SQL export and transfer literal formatting
JSON fields containing backslashes (regex patterns, escaped quotes, etc.)
were not properly escaped during database export and data transfer. The
backslash was written as-is in INSERT statements, causing data corruption
when re-importing. This aligns with the existing fix in data_grid_sql.rs.
2026-05-25 10:59:30 +08:00
t8y2 62ee0450ab fix(duckdb): update get_columns_for_transfer to support schema parameter 2026-05-24 10:50:50 +08:00
t8y2 d326519247 fix(core): reduce async blocking and allocation hotspots 2026-05-23 14:45:45 +08:00
t8y2 cb7682e932 fix(mysql): normalize temporal SQL literals 2026-05-21 14:14:38 +08:00
t8y2 f4566221b1 feat(query): add paged result fetching 2026-05-17 00:10:18 +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 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 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
BlueSkyXN 5975a0b0b7 feat(external): add tabular source foundation 2026-05-10 19:50:34 +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 6a3e8067e1 feat(transfer): add upsert mode for data transfer (#105)
Add a third transfer mode that inserts new rows and updates existing
rows based on primary key, supporting PostgreSQL, MySQL, SQLite,
SQL Server, Oracle, and DuckDB with database-specific upsert syntax.
Also fixes DuckDB primary key detection in transfer operations.
2026-05-06 20:44:05 +08:00
t8y2 41445ff474 chore: add rustfmt.toml and apply unified code formatting 2026-05-05 14:16:18 +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