* feat(sqlfile): add refresh, locate, and context menu to SQL Files panel
- Add per-folder Refresh and Reveal-in-file-manager buttons on each opened
folder header, plus a Refresh-all button on the panel toolbar. Re-scan
prunes expand state for paths that no longer exist after refresh.
- Add right-click context menus (via CustomContextMenu) for files, folders,
folder headers, and the panel background: open, execute SQL file, reveal
in file manager, copy path, expand/collapse all, refresh, remove folder.
- Highlight the selected tree row on click/right-click; clicking empty space
clears the selection.
- Wire "Execute SQL file" from the panel into the App-level
SqlFileExecutionDialog via connectionStore.sqlFileSource.filePath + a new
prefillFilePath prop, so the dialog opens with the file preview preloaded.
- Add zh-CN/en strings under sqlFileTree.
* chore(i18n): autofill new translations
* fix(sqlfile): clear prefillFilePath on close, dedupe i18n keys
---------
Co-authored-by: wanqinghua <wanqhua@gmail.com>
Co-authored-by: dbx-i18n-bot <github-actions[bot]@users.noreply.github.com>
Co-authored-by: t8y2 <1156263951@qq.com>
* fix(grid): reuse local result rows for csv/xlsx export instead of re-running query
Exporting the full result set ("导出当前结果集全部数据 CSV") previously
re-executed the source SQL on the database via the backend streaming path
(exportQueryResultViaBackend -> start_query_result_export), and the frontend
fallback (fullExportResult/fetchTabResultForExport) did the same. For a slow
query this means running it a second time just to export rows already on
screen, which can hang or crash (e.g. a 2-minute paimon query returning 30
rows).
When the in-memory result already holds the complete set (no server-side
pagination, not truncated, no further pages), skip both re-executing paths and
write the displayed rows directly. Large/truncated/paginated results keep the
original streaming behavior unchanged.
* fix(grid): export raw in-memory result for complete local result set
---------
Co-authored-by: t8y2 <1156263951@qq.com>
TREE_SCHEMA mode databases (saphana, jdbc, postgres, etc.) use an empty string to represent the default database selection. The previous check treated empty string as no database selected and incorrectly blocked query execution.
Use find().sort() for MongoDB query grid sorting instead of SQL ORDER BY,
and normalize document browser sort input the same way as filters.
Co-authored-by: Cursor <cursoragent@cursor.com>