Commit Graph
577 Commits
Author SHA1 Message Date
KraH 23bbfcb157 Added support for integer arrays
Added support for float4
2026-05-11 17:06:43 +04:00
Alexandr a6a0b0c5b2 Merge branch 'main' into main 2026-05-11 09:35:51 +04:00
KraH e817141234 Fixed single quotes causing build failures 2026-05-11 09:31:51 +04:00
Alexandr 6de801557a i18n for redis key browser; (#213) 2026-05-11 13:26:28 +08:00
KraH 60bfac35e6 i18n for redis key browser; 2026-05-11 09:21:27 +04:00
t8y2 39f33e15d4 fix(sidebar): allow search to find tables hidden behind object browser
When a database has more than 15 tables, only the first 15 are shown
in the tree with an "object browser" entry for the rest. The sidebar
search could not find tables beyond the first 15.

Store hidden table nodes on the object-browser TreeNode and search
through them in filterTree when a query is active.
2026-05-11 13:21:19 +08:00
t8y2 7197f83eda perf(sidebar): fix UI lag with 100+ databases (closes #201)
- Lower virtual scrolling threshold from 400 to 100 nodes so
  RecycleScroller activates earlier with many databases
- Memoize getConfig() with a computed Map to avoid O(n) linear
  search on every TreeItem computed property evaluation
2026-05-11 13:08:57 +08:00
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 7c72a09b59 chore: update rust-oracle to include TCP keep-alive fix 2026-05-11 12:03:12 +08:00
t8y2 7790b6fa04 fix(oracle): detect connection errors on non-English Windows (closes #208)
is_connection_error() only matched English keywords like "connection"
and "closed", missing localized OS messages on Chinese Windows such as
"I/O error: 远程主机强迫关闭了一个现有的连接。 (os error 10054)".
This prevented automatic reconnection, causing all subsequent queries
in database search to fail after a connection reset.

Add "i/o error" detection and Windows socket error code parsing
(10053/10054/10057/10058/10060/10061) so reconnect logic triggers
regardless of OS locale.
2026-05-11 12:01:40 +08:00
t8y2 03bea705e7 feat(objects): edit database object source 2026-05-11 11:48:46 +08:00
t8y2 70db0aa62c refactor(ci): switch 1Panel appstore to community repo and manual trigger 2026-05-11 11:41:51 +08:00
t8y2 2d83fbb1ed chore: ignore local agent files 2026-05-11 11:06:16 +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 22453f9097 fix(ci): correct 1Panel appstore PR base branch and add release-note block 2026-05-11 10:24:05 +08:00
t8y2 3733c3f08f chore: bump version to 0.5.3 v0.5.3 2026-05-11 02:31:47 +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 dbfe69572e perf(build): make DuckDB bundled compilation optional
Add duckdb-bundled feature gate (default on) to dbx-core. Local dev
can use --no-default-features to skip DuckDB C++ compilation (~170s),
while CI/Docker keeps the default bundled build.
2026-05-10 22:48:35 +08:00
t8y2 685aba00e2 fix: avoid disconnecting prefixed web pools 2026-05-10 22:41:04 +08:00
t8y2 3eff55e4e2 fix: sync web connection config cache 2026-05-10 22:38:47 +08:00
t8y2 c43ab681cd test: add backend API contract coverage 2026-05-10 22:34:37 +08:00
t8y2 6addbea72d test: 接入前端测试脚本 2026-05-10 22:32:01 +08:00
t8y2 417b74cc51 refactor(ci): trigger Homebrew/Scoop publish on release event
Move packages job from release.yml to publish-packages.yml, triggered
by release published/released events. Keeps workflow_dispatch as a
manual fallback. Now all external publishing (Homebrew, Scoop, 1Panel,
QQ notify) triggers at the same time: when a prerelease is promoted
to a full release.
2026-05-10 22:23:25 +08:00
t8y2 302835bebb refactor(ci): trigger 1Panel submission on release publish
Move 1Panel App Store submission from release.yml to a standalone
workflow triggered by release published/released events, matching
the same pattern as QQ notify.
2026-05-10 22:19:09 +08:00
t8y2 fdb9a5c4d3 feat(ci): add 1Panel App Store auto-submission
Add 1Panel app store configuration files (metadata, docker-compose
template, logo) and a release workflow job that automatically creates
a PR to 1Panel-dev/appstore on each release.
2026-05-10 22:16:07 +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 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
t8y2 61bd7480f4 fix(oracle): refresh schema cache and complete table lists 2026-05-10 20:05:11 +08:00
BlueSkyXN 5975a0b0b7 feat(external): add tabular source foundation 2026-05-10 19:50:34 +08:00
t8y2 3e321d869c fix(oracle): decode NCHAR values correctly 2026-05-10 19:09:06 +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