Commit Graph

362 Commits

Author SHA1 Message Date
t8y2 0ffc0dbca8 fix(ci): add missing redis cluster test config field 2026-05-28 01:20:24 +08:00
t8y2 c952c65483 feat: upgrade data compare sync planning 2026-05-28 01:05:15 +08:00
t8y2 3ba3a644fe Format table structure SQL helpers 2026-05-28 00:16:42 +08:00
t8y2 797c0d8d21 Add Redis cluster support and improve key loading 2026-05-28 00:08:59 +08:00
t8y2 ac4313afee fix(sqlserver): avoid false unknown column diagnostics 2026-05-27 23:07:47 +08:00
t8y2 634e8bf5ac feat(sqlserver): enable table structure editing for existing columns and comments
- Enable renameColumn, alterExistingColumn, alterType, alterNullability,
  alterDefault, comment, and indexComment capabilities for SQL Server
- Implement build_sqlserver_existing_column_sql() with sp_rename for column
  rename, ALTER TABLE ALTER COLUMN for type/nullability changes, and dynamic
  SQL for default constraint management
- Add sp_addextendedproperty/sp_dropextendedproperty DDL generation for table,
  column, and index comments
- Fetch table and column comments from sys.extended_properties via OUTER APPLY
  in list_tables, list_objects, and get_columns SQL queries
- Fix table comment placeholder text (was showing column comment placeholder)
2026-05-27 22:28:31 +08:00
t8y2 50a7fd8968 fix(postgres): read custom enum values via binary protocol fallback
tokio_postgres's FromSql<String> only accepts built-in text-like OIDs and
rejects custom enum OIDs, causing all enum column values to display as
NULL. Add a PgAnyString adapter that accepts any type and reads raw bytes
as UTF-8, used as a last-resort fallback in pg_value_to_json and
pg_array_to_json_value.

Also bump shadcn-vue (2.6.2→2.7.3) and reka-ui (2.9.6→2.9.8).

Closes #485
2026-05-27 19:11:13 +08:00
t8y2 c362fedabe fix: hide terminal window when checking system proxy on Windows
Use CREATE_NO_WINDOW flag to prevent reg.exe from flashing console windows
during update checks.

Closes #483
2026-05-27 18:27:23 +08:00
t8y2 6d35dcfda8 fix: fix cargo fmt and update tests for completion/snippet changes
- Run cargo fmt on duckdb_driver.rs
- Update test expectations for snippet→function type changes
- Fix snippet icon color test (emerald→violet)
- Fix error result message format test
- Fix keyword suggestion test to handle snippet boost priority
2026-05-27 18:26:22 +08:00
t8y2 dafed47b07 fix: improve database error message extraction for queries
- frontend: use e.message instead of String(e) in toErrorResult to avoid
  "Error: " prefix for HTTP-mode errors, matching connectionErrorMessage
- frontend: apply same fix to MongoDocBrowser error display
- backend(postgres): use pg_error_to_string across all query execution
  paths (execute, execute_batch, copy_out, copy_in) to extract DbError
  details instead of generic transport-layer errors

Other databases (MySQL, SQL Server, SQLite, DuckDB) already include
server-level error details in their native Error::to_string().
2026-05-27 15:40:28 +08:00
t8y2 e9a2c08a46 feat(db): support TLS client certificates 2026-05-27 13:54:32 +08:00
t8y2 a296bd6c3c fix(duckdb): explicitly close connections to release file locks on Windows
DuckDB opens database files with exclusive locks on Windows. Previously
connections were only released via Drop, which may not release the file
handle synchronously, causing "file already in use" errors when
reconnecting or testing connections in quick succession.
2026-05-27 13:53:14 +08:00
vvrf bcfad319a6
fix: allow mysql timestamp default null ddl 2026-05-27 13:31:22 +08:00
t8y2 745f37fa6d fix(mysql): avoid garbled binary value previews 2026-05-27 12:56:53 +08:00
t8y2 455f04a874 fix: support DuckDB extensions in macOS builds 2026-05-27 10:43:20 +08:00
t8y2 d6047e26c1 fix: support postgres schema url params 2026-05-27 09:12:47 +08:00
t8y2 eefe17f480 chore: bump version to 0.5.22 2026-05-27 03:15:09 +08:00
t8y2 0c9ee34a82 feat: add WebDAV cloud sync with encrypted secrets support
Add WebDAV-based settings sync for desktop app, including connection
configuration, editor settings, and optional encrypted secrets sync.
Also persist WebDAV remember-password preference across sessions.
2026-05-27 01:17:23 +08:00
t8y2 ad7db2cb49 chore: format rust sources 2026-05-26 22:58:20 +08:00
vvrf 3a595c8efb
fix: render binary values as hex (#465) 2026-05-26 22:46:00 +08:00
t8y2 660ed3002f fix: tolerate mysql-style params in postgres urls 2026-05-26 21:48:37 +08:00
t8y2 7a93e69d7b fix: add font runtime deps to docker image 2026-05-26 21:42:02 +08:00
t8y2 2038501b53 fix: use system proxy for app updates 2026-05-26 20:12:41 +08:00
t8y2 32273b4d6e feat: support Redis Sentinel connections 2026-05-26 19:44:23 +08:00
t8y2 aa0ebac233 fix: avoid pagination wrapper for Postgres/Oracle to prevent duplicate column errors
Replace SELECT * FROM (subquery) LIMIT/OFFSET pattern with direct
LIMIT/OFFSET appending for all database types, matching the existing
MySQL approach. This prevents "Duplicate column name" errors when
paginating JOIN queries that produce same-named columns.
2026-05-26 19:06:10 +08:00
t8y2 0e67f19117 feat: improve data grid selection and copy 2026-05-26 18:26:31 +08:00
t8y2 f9b58993b4 fix: add TLS connection settings 2026-05-26 17:32:05 +08:00
t8y2 551339cd22 fix: only refresh sidebar tree when table comment actually changed
Previously the sidebar tree refresh was skipped entirely in EDIT mode because
the check was gated on activeTab.mode === 'data', which is never true when
the structure editor is open. Now we pass a commentChanged flag through the
event chain and only refresh the tree when the comment was modified.
2026-05-26 16:21:54 +08:00
t8y2 11ed019b0e fix: render postgres array values 2026-05-26 15:49:51 +08:00
t8y2 195e6b218f fix: decode sql files before execution 2026-05-26 15:43:07 +08:00
t8y2 a1f718d6bd fix: normalize mysql export row format 2026-05-26 15:03:53 +08:00
t8y2 7c0a8ed01d fix: scope postgres-like agent connections to selected database 2026-05-26 14:59:17 +08:00
t8y2 efe8a2e4fb fix: avoid mysql pagination wrapper for duplicate columns 2026-05-26 14:44:10 +08:00
t8y2 32a4a5b1ec fix: normalize temporal column precision 2026-05-26 14:38:53 +08:00
t8y2 c2d5b3aea3 chore: bump version to 0.5.21 2026-05-26 12:41:23 +08:00
t8y2 c6fc78588e fix: normalize postgres timezone url parameter 2026-05-26 12:38:37 +08:00
t8y2 5a420548fb fix: set mysql connection charset 2026-05-26 12:15:35 +08:00
t8y2 affd8b38a1 fix: include postgres template databases in picker 2026-05-26 12:10:07 +08:00
t8y2 76a0b9f76d fix: let users opt into system databases 2026-05-26 12:06:48 +08:00
t8y2 f895bb4de5 fix: scope agent metadata by database 2026-05-26 11:51:58 +08:00
t8y2 6d6ba34cac fix: satisfy clippy for jdbc plugin upload 2026-05-26 11:39:57 +08:00
t8y2 0fec2b5984 fix: allow postgres sslmode require with custom cas 2026-05-26 11:36:10 +08:00
t8y2 23d04645f6 fix: display MySQL BIT(1) columns as numeric strings instead of garbled text
BIT columns arrive as raw bytes from mysql_async. Without specialized
handling, byte 0x01 was treated as a valid UTF-8 control character and
byte 0x00 was replaced with U+FFFD. Now BIT values are interpreted as
big-endian integers, so BIT(1) correctly displays "0" or "1".
2026-05-26 11:22:23 +08:00
t8y2 5f3606e5b5 fix: handle postgres system catalog query results 2026-05-26 11:05:07 +08:00
t8y2 6e0f4e1dc3 feat: enable driver management on web version
- Extract JDBC driver/plugin logic from Tauri commands to dbx-core::jdbc
- Add web API routes for JDBC drivers, JDBC plugin, Agent JAR import, system fonts
- Upgrade zip crate from v2 to v4 in dbx-core
- Replace http.ts stubs with real HTTP calls (support File and string paths)
- Remove isWeb restrictions in DriverStoreDialog, add browser file picker support
- Fix Mac traffic light inset incorrectly applied on web version
- Show driver management toolbar button on web version
2026-05-26 01:23:26 +08:00
t8y2 c55a31b294 refactor: replace duplicate extract/dispatch patterns in schema.rs with macros
Replace 5 extract_* functions with extract_pool! macro, 7 OceanBase/MySQL
branches with dispatch_mysql! macro, and 9+ sqlserver/agent early-return
pairs with try_sqlserver!/try_agent! macros. Pure refactor, zero behavioral
change — all 435 tests pass, downstream crates compile unchanged.
2026-05-25 23:42:43 +08:00
t8y2 7c5740a400 refactor: extract Neo4j and TDengine SQL logic from data_grid_sql.rs 2026-05-25 23:21:47 +08:00
t8y2 fe2ecd60d2 feat: add ClickHouse TLS connection support 2026-05-25 21:07:22 +08:00
t8y2 5fae9808a2 Fix table empty SQL for dialects 2026-05-25 20:50:25 +08:00
t8y2 234099aebd feat: use native postgres path for GaussDB connections 2026-05-25 19:25:35 +08:00