Chat2DB v5.3.7-beta.3
Pre-release
Pre-release
Immutable
release. Only release title and notes can be modified.
Chat2DB Community 5.3.7-beta.3 is a Beta prerelease. Packaged desktops can now update themselves: the app checks the release channel, verifies the signed manifest, downloads and installs the full package, and restarts into it, with Beta releases offered only when Receive Beta versions is enabled. This build also adds preview and options for Excel, JSON, and SQL imports, an optional parallel CSV import mode, a table update-time column, and fixes across imports, tasks, storage, copying, and the desktop shell.
Added (4)
- Packaged desktops on macOS, Windows, and Linux can discover, download, verify, and install a newer release from inside the app and restart into it. The update is recorded only after both the trial and the normal startup report healthy, and Receive Beta versions additionally offers Beta releases to users who opt in by @haizhi03 and @openai0229 in PR #2698.
- Excel (
.xlsx,.xls), JSON, and SQL imports now support preview and the basic options the CSV flow already had: sheet, header row, data row range, column range, empty cells as NULL, and date, time, and decimal formats for Excel; encoding and document shape for JSON; statement and encoding handling for SQL. Import failures now name their cause and the offending value by @openai0229 in PR #2921. - CSV imports can opt into a parallel FAST mode after the preview confirms the rows have no ordering dependencies, with batch size and concurrency adapted to measured throughput. Failing or cancelling the import cancels the running statements, waits for its workers, and closes its dedicated connections by @liushikuan63 in PR #2908.
- The table list shows an Update Time column next to Create Time, left blank when the database reports no value, with translated titles in all supported languages by @openai0229 in PR #2915.
Improved (3)
- The task center keeps its rows, order, and paging while polling: records are merged by ID instead of being replaced, and a task whose executor was cancelled unexpectedly is reported as failed instead of staying RUNNING by @HandSonic in PR #2795.
- Local datasource lists apply the alias search and datasource-kind filters before paging, so the total and the page contents match the filter, kind codes are matched case-insensitively, and entries saved without a kind are treated as private by @HandSonic in PR #2820.
- Dashboard and console lists no longer fail on extreme page numbers: out-of-range requests return an empty page with accurate totals instead of an index error, far-out console pages keep their newest-first order without reversing the source list, and Dashboard infinite scrolling now follows the component lifecycle by @HandSonic in PR #2812 and PR #2815.
Fixed (19)
- Copying results on Windows now writes CRLF line endings, so pasting into native applications such as SAP GUI keeps one row per line instead of collapsing rows and showing
#markers, while macOS and Linux keep LF by @openai0229 in PR #2909. - Queries that reach a table through a single-table subquery, for example
SELECT * FROM (SELECT * FROM APP.EVENT_LOG ORDER BY CREATE_TIME DESC) WHERE ROWNUM <= 100, resolve the physical table again and show its primary key in the result by @openai0229 in PR #2916. - JSON imports map missing fields and explicit JSON nulls to SQL NULL instead of the string
null, and array elements that are not objects are no longer imported as all-NULL rows by @HandSonic in PR #2809. - Exporting to a filename another file has taken preserves that file and retries with an available numbered name, and the actual destination path is recorded before the content is written by @HandSonic in PR #2800.
- AI session and message histories are written to a temporary file and replace the target atomically, so an interrupted write no longer destroys the last valid history; a failed deletion restores the previous session record instead of leaving messages without an owner by @HandSonic in PR #2843 and PR #2841.
- Saving or deleting small data records, ER-diagram positions, and namespace member positions now updates the in-memory state only after the write succeeds, so a failed write no longer shows a change that disappears after reloading by @HandSonic and @Aias00 in PR #2830, PR #2840, and PR #2846.
- Concurrent namespace membership changes no longer lose or duplicate datasource positions, and a request that reads the list while it is being changed returns a consistent order by @Aias00 in PR #2480.
- A damaged cache entry is now removed on its own and reloaded through the configured fallback instead of making that key unusable for its whole lifetime by @HandSonic in PR #2828.
- Cached relational table pages no longer throw an index error for very large page numbers, and driver jar scanning reports an unreadable directory as a clear driver error instead of a null-pointer failure by @HandSonic and @Aias00 in PR #2824 and PR #2506.
- Copying a connection preserves BigQuery and service-name fields and deep-copies SSH, driver, and extension configuration instead of sharing it between the copies by @HandSonic in PR #2793.
- A failed SSH transport is reported once: the connection dialog no longer shows a duplicate alert for the same failure, and the error keeps its original cause by @Aias00 in PR #2548.
- Desktop IPC debug logs no longer expose passwords, SSH passphrases, JDBC connection strings, or sensitive
extendInfovalues, while the request and response still reach their destination unchanged by @Aias00 in PR #2473. - MCP token resets are serialized: an older response can no longer overwrite the newest token, repeated resets produce one token, and the dialog shows a busy state until the reset finishes by @HandSonic in PR #2845.
- Redis rejects update commands for keys whose type does not match the operation instead of generating a command the server refuses by @Aias00 in PR #2437.
- DuckDB tables use DuckDB-specific
LIMIT/OFFSETpagination, so browsing no longer falls back to unsupported syntax by @Aias00 in PR #2490. - Redshift and CockroachDB create databases with their own statements instead of PostgreSQL clauses their dialects reject, and CockroachDB database comments keep quoted names and escaped literals by @Aias00 in PR #2486.
- CockroachDB tables without a primary key now generate native limited updates and deletes instead of relying on row identifiers by @Aias00 in PR #2484.
- Informix table alterations and execution plans are generated with the clauses the dialect supports by @Aias00 in PR #2488.
- Editing a result set on Windows no longer flickers the editor cursor while the cell is focused by @openai0229 in PR #2922.
Full Changelog: v5.3.6...v5.3.7-beta.3