Commit Graph
1235 Commits
Author SHA1 Message Date
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 a68af9c740 fix: honor editor font in redis views 2026-05-26 18:44:00 +08:00
t8y2 8c157c7c5e feat: support AND/OR conjunction between structured filter rules
Replace hardcoded AND-only filter condition joining with a grouped WHERE
builder that respects per-rule AND/OR conjunctions. The filter builder UI
now shows toggle buttons between rules to switch the logical operator.
2026-05-26 18:31:29 +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 94487384e1 feat: add shortcut for accepting completion and update related functionality 2026-05-26 16:59:22 +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 29462937d3 feat: implement formatting for staged Rust files in pre-commit hook 2026-05-26 16:14:58 +08:00
t8y2 3959629672 fix: remove unnecessary separators in QQ Notify messages 2026-05-26 16:14:29 +08:00
t8y2 7fa056f57c fix: boost high-frequency SQL keywords in completion ranking
Typing "WH" now ranks WHERE above WHEN since WHERE is far more
commonly used. High-frequency keywords (SELECT, FROM, WHERE, JOIN,
etc.) get a +100 boost so usage frequency outweighs length-based
tie-breaking.

Fixes #459
2026-05-26 16:12:13 +08:00
t8y2 fa9bf6a508 feat: display table comments in sidebar tree with hover-hide behavior
Show table/view comments next to names in the sidebar, hiding them on
row hover to avoid overlap with the pin button.
2026-05-26 15:57:48 +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 be0c2b4775 feat: support batch table export selection 2026-05-26 15:32:33 +08:00
t8y2 f5f986cdd6 fix: add Shiki SQL syntax highlighting to all SQL display components
Add useSqlHighlighter composable and integrate Shiki highlighting into
DangerConfirmDialog, QueryHistory, DataGrid (replacing regex-based
highlighting), SqlFileExecutionDialog, SchemaDiffDialog, TreeItem,
ObjectBrowser, and FieldLineageDialog. Also fix danger dialog overflow
by adding overflow-hidden to DialogContent and wrap/scroll support.
2026-05-26 15:31:15 +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 8539e492cc fix: install arm64 fontconfig/freetype libs for cross-compilation v0.5.21 2026-05-26 13:23:29 +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 75155ebfda chore: clear frontend lint warnings 2026-05-26 12:31:03 +08:00
t8y2 ce22d6a046 fix: focus new structure column input 2026-05-26 12:30:12 +08:00
t8y2 309c2d1555 fix: restore structure editor vertical scrolling 2026-05-26 12:26:21 +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 7bdacc52ba fix: align sidebar search matching 2026-05-26 11:57:12 +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 e43f03dbde fix: resolve frontend CI type checks 2026-05-26 01:54:00 +08:00
t8y2 53ee696714 docs: add Why DBX and FAQ sections to README 2026-05-26 01:48:25 +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 b53a6dac8c docs: add 7 new docs pages and update 4 existing ones
Add new pages: Redis Browser, MongoDB Browser, Driver Management,
Keyboard Shortcuts, Object Browser, Connection Import, SQL Snippets.
Update: Data Grid (transpose view, column formatters, multi-row ops),
Table Structure Editor (PK editing, column reorder, tab UI),
AI Assistant (thinking mode, table mentions),
Database Support (ClickHouse TLS, GaussDB native, DuckDB modes).
2026-05-25 22:54:58 +08:00
t8y2 8baa752721 feat: add compact data grid header controls 2026-05-25 21:29:37 +08:00
t8y2 718f0c1679 fix: prevent browser reload shortcuts in desktop app 2026-05-25 21:09:02 +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 eb1a04b005 fix: move gaussdb and opengauss to direct query types in diagnostics 2026-05-25 19:30:19 +08:00
t8y2 25bf3c035e test: fix pagination page size test after executionOptions refactor
The query timeout feature moved clientSessionId to the outer executionOptions
object, which broke the single-line regex assertion. Split into individual
assertions that track each field independently.
2026-05-25 19:25:38 +08:00
t8y2 a15ce1f6c7 build: switch tokio-postgres-gaussdb patch from local path to git URL 2026-05-25 19:25:37 +08:00
t8y2 234099aebd feat: use native postgres path for GaussDB connections 2026-05-25 19:25:35 +08:00
t8y2 792c816a17 feat: make query timeout configurable via global settings (default 30s)
Add queryTimeoutSecs to editor settings with UI control in the settings
dialog. 0 means no timeout. Applied to all query execution paths including
sidebar table data loading and EXPLAIN queries.

Closes #441.
2026-05-25 18:30:55 +08:00
t8y2 db00051632 fix: avoid creating session pool without database context for Doris/StarRocks
When database is empty, get_or_create_pool_for_session would create a new
pool via metadata_connection_config, which clears the database for Doris
and StarRocks (is_metadata_connection_scoped). The resulting connection
URL had no database path, causing "Current database is not selected"
errors on query execution.

Fall back to the shared pool (get_or_create_pool) when database is empty,
matching the 0.5.19 behavior. Session-scoped pools are still used when
a database is explicitly set.
2026-05-25 18:05:32 +08:00