Commit Graph
308 Commits
Author SHA1 Message Date
t8y2 7c38af6cbb fix(oracle): speed up schema diff and add comment sync (closes #198)
- Replace ALL_OBJECTS with ALL_TABLES UNION ALL_VIEWS in list_databases
  query to avoid slow full scan on large Oracle instances
- Add loading indicator in SchemaDiffDialog during database/schema loading
- Generate COMMENT ON TABLE/COLUMN statements in schema diff sync SQL
- Compare column and table comments in diff detection
2026-05-11 12:59:07 +08:00
t8y2 1934205c86 feat(grid): add LIKE, NOT LIKE, <, > context menu filters
Add four new filter options to the right-click context menu in table
data view: contains (LIKE), does not contain (NOT LIKE), less than (<),
and greater than (>). Includes en/zh-CN/es translations.
2026-05-11 12:39:31 +08:00
t8y2 1b0c17315b feat(i18n): replace locale toggle with dropdown menu and country flags
Replace the single-click locale cycle button with a dropdown menu
showing all available languages with their country flag emoji.
Locale switching logic moved from App.vue into AppToolbar.vue.
2026-05-11 12:30:04 +08:00
t8y2 8032c63727 fix(grid): persist WHERE filter input across tab switches (closes #210)
whereFilterInput was a component-local ref that got lost when switching
tabs because DataGrid is destroyed and recreated via :key binding.

Store whereInput in the QueryTab state and pass it as initialWhereInput
prop so it survives tab switches.
2026-05-11 12:24:08 +08:00
t8y2 cb70625bd8 fix(objects): save SQL Server object source definitions 2026-05-11 12:17:18 +08:00
Marcos Leandro Bonilla BorgesandCopilot Autofix powered by AI 3c0dbb3e30 feat(i18n): add Spanish localization and improve locale switching (#212)
* feat(i18n): add Spanish localization and improve locale switching

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-11 12:09:13 +08:00
t8y2 03bea705e7 feat(objects): edit database object source 2026-05-11 11:48:46 +08:00
t8y2 f588e03a6b fix(sidebar): require double click to open object browser 2026-05-11 11:03:18 +08:00
t8y2 d4c2b4af7b fix(oracle): 简化编辑器选择器并支持 schema 切换 (closes #205)
Oracle/Dameng 连接隐藏多余的 Database 选择器,只显示 Schema 选择器。
查询执行时通过 ALTER SESSION SET CURRENT_SCHEMA 切换 schema 上下文。
2026-05-11 11:00:16 +08:00
t8y2 9413df686e fix(grid): Enter 键优先选中自动补全建议项 (closes #202)
WHERE 和 ORDER BY 输入框中,有自动补全建议显示时按 Enter 键
现在会选中当前高亮的建议项,而不是直接执行查询。
2026-05-11 11:00:02 +08:00
t8y2 e03ce491af feat(ai): add guarded SQL auto execution 2026-05-11 02:27:56 +08:00
t8y2 9355fa7e93 fix(sidebar): 修复侧边栏树状态显示 2026-05-11 02:16:36 +08:00
t8y2 043bd5dd8d fix: make GitHub link clickable in settings about page 2026-05-11 01:41:17 +08:00
t8y2 b0480494ff feat: add MongoDB table view with inline editing support
- Add document/table view toggle to MongoDocBrowser
- Convert MongoDB documents to DataGrid format (union of all top-level keys)
- Add customSave prop to DataGrid for pluggable save backends
- MongoDB grid save converts dirty rows to mongoUpdateDocument calls
- Enable transaction-mode toolbar (commit/rollback) for customSave
2026-05-11 01:38:24 +08:00
t8y2 14680238b8 feat: editor enhancements, DataGrid refactor, and sidebar improvements
- Add bracket auto-close and matching to SQL editor (closeBrackets, bracketMatching)
- Show truncation warning banner when query results exceed 10,000 rows
- Extract shared export format functions (CSV/JSON/SQL INSERT) to lib/exportFormats.ts
- Add progressive rendering to sidebar tree (50-node cap with "show more")
- Fix connection node expanding before connect succeeds
- Split DataGrid.vue (3177→2535 lines) into 4 composables:
  useDataGridExport, useDataGridColumnResize, useDataGridSelection, useDataGridEditor
2026-05-11 01:08:07 +08:00
t8y2 49f03b0c69 feat: add loading overlay with elapsed timer to DataGrid
Show a semi-transparent overlay with a spinning loader and elapsed
time counter while queries are executing, preventing accidental
interaction with the grid content.
2026-05-11 00:30:46 +08:00
t8y2 f456ddd979 perf: full-stack performance and security hardening
Frontend performance:
- Debounce DataGrid search (150ms) and replace O(n) row wrapping with index array
- Replace QueryStore deep watcher with targeted field-level persistence snapshot
- Extract shared nodeConfig computed in TreeItem (eliminates 15x redundant getConfig calls)
- Clear tab result data on close to free memory
- Add LRU eviction for completion caches (50 entry cap)
- Replace savedSql version string join with numeric counter

Memory leak fixes:
- Store Tauri event unlisten handles and clean up on unmount
- Clean up DataGrid search timer on unmount

Backend security & resource management:
- Add 50MB request body size limit
- Reject file uploads >100MB and SQL files >200MB
- Clean up SSE channels after transfer/import completes
- Recover from poisoned mutex instead of panicking
- Delete temporary upload files after preview
- Validate SQL file paths to prevent directory traversal
2026-05-11 00:18:09 +08:00
t8y2 741783445d feat: add XLSX export to table context menu
Add XLSX export option to the sidebar table name right-click menu,
unifying export capabilities with the data grid context menu. Also
add toast notifications for all sidebar data export operations.
2026-05-10 23:38:53 +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 c43ab681cd test: add backend API contract coverage 2026-05-10 22:34:37 +08:00
t8y2 c6b6ba5769 feat(connections): import DBeaver connections 2026-05-10 22:10:30 +08:00
t8y2 9661c60812 feat(connections): import Navicat NCX files 2026-05-10 21:51:48 +08:00
t8y2 6d513afc16 feat(objects): show routines in object browser 2026-05-10 21:14:16 +08:00
t8y2 d917842fca perf(oracle): speed up initial table loading 2026-05-10 20:47:54 +08:00
t8y2 61bd7480f4 fix(oracle): refresh schema cache and complete table lists 2026-05-10 20:05:11 +08:00
t8y2 0e0195f734 feat(objects): add virtual object browser 2026-05-10 18:32:24 +08:00
t8y2 1cd358f3c1 fix(sidebar): allow collapsing search results 2026-05-10 14:43:49 +08:00
t8y2 f5b36a0f60 feat(history): track database activity 2026-05-10 14:18:20 +08:00
t8y2 10bfede1c7 feat(jdbc): add optional JDBC plugin support 2026-05-10 12:57:38 +08:00
t8y2 3a6078e10c fix(sidebar): remove tinted row rounding 2026-05-10 10:32:58 +08:00
t8y2 939f36bda6 fix(redis): align key table columns 2026-05-10 10:26:14 +08:00
t8y2 8664cc5b48 feat(grid): add clipboard shortcuts 2026-05-10 10:22:17 +08:00
t8y2 5a15d7a424 fix(ui): refine layout polish 2026-05-10 10:17:18 +08:00
t8y2 ebc905a478 feat(ui): add layout preference 2026-05-10 10:11:55 +08:00
t8y2 28f8c88ea9 feat(ui): refine panel and tab chrome 2026-05-10 09:54:21 +08:00
t8y2 cb7428b5a3 feat(ui): refine app chrome layout 2026-05-10 09:37:02 +08:00
t8y2 0b376c234f feat(ui): add connection color tinting 2026-05-10 09:19:14 +08:00
t8y2 4cd9432fcb fix(connection): sync connection state when expanding cached tree 2026-05-10 09:11:12 +08:00
t8y2 3066266697 fix(ui): resolve connection dialog errors
- Escape `@` in i18n connection URL placeholder to prevent vue-i18n
  linked message compilation error
- Add hidden DialogDescription to DialogContent to suppress reka-ui
  aria-describedby warning
2026-05-10 01:13:00 +08:00
t8y2 b013a2ac29 feat(sql): persist SQL library in app database 2026-05-10 00:41:17 +08:00
t8y2 cac383e6bf feat(sql): add saved SQL library 2026-05-10 00:33:25 +08:00
t8y2 d3919a5c20 fix(grid): refine column filter popover 2026-05-10 00:16:32 +08:00
t8y2 95519903b6 feat(grid): add DataGrip-style column filters 2026-05-10 00:12:50 +08:00
t8y2 dc2164dd62 fix(web): align file picker behavior 2026-05-09 23:49:18 +08:00
t8y2 97b77ec46d feat(diff): add data compare and schema sync coverage 2026-05-09 23:44:49 +08:00
t8y2 a878ec203a feat(data): support connection URLs and XLSX export 2026-05-09 23:11:15 +08:00
t8y2 bd58ab6312 fix(query): persist unsaved query tabs 2026-05-09 22:50:06 +08:00
t8y2 afb177db85 fix(connection): hide system database objects 2026-05-09 19:50:28 +08:00
t8y2 9c71442f43 feat(connection): add configurable SSH timeout 2026-05-09 19:34:30 +08:00
t8y2 8c1ba16a2c fix(grid): move transaction status near actions 2026-05-09 18:18:09 +08:00