Skip to content

Chat2DB v5.3.7

Latest

Choose a tag to compare

@github-actions github-actions released this 22 Sep 02:20
Immutable release. Only release title and notes can be modified.
f6137db

Chat2DB Community 5.3.7 adds in-app desktop updates for the packaged macOS, Windows and Linux builds; import preview with field mapping and per-format configuration for CSV, Excel, JSON and SQL imports plus an ultra-fast CSV import mode; an Update Time column in the table list; Oracle EXPLAIN PLAN results; and 31 further improvements and fixes across the query console, task center, dashboards, AI features and connection handling.

Added (5)

  1. In-app desktop updates: the packaged macOS, Windows and Linux builds discover and install new versions, and a package is installed only after its signed manifest is verified. Settings → About gained a "Receive beta versions" switch. A downloaded update is kept when the application restarts or checks for updates again, so it installs without downloading again and also works offline (a beta update is no longer discarded after a restart); on macOS the update helper runs independently of the application so the update survives the application closing; an install that replaces the whole package restores and reopens the previous version when an update fails; on Windows the installer falls back to a compatible launch mode and keeps the original installation directory when the automatic install cannot start; the verification run no longer opens a temporary application window. Repeated clicks on "Check for updates" send a single request, the button shows a loading state, and a check reports its result at most once; an unreachable update source reports a failed check instead of "no new version available". by @haizhi03 @openai0229 in #2698 #2917 #2923 #2931 #2943 #2947 #2949
  2. Import preview, field mapping and basic configuration: CSV, XLS, XLSX, JSON and SQL imports can be previewed before they run, the mapping between source and target fields can be adjusted, individual fields can be skipped, and unmapped fields can take a default value or NULL. CSV supports the file encoding, delimiter, quote and escape characters, header and data row ranges, null handling and date/number formats; Excel/XLS select the worksheet, header row, first and last data row and the column range, treat empty fields as NULL, and set the date, time and decimal formats for text cells; JSON selects the encoding, the data structure (array of objects, single object, JSON Lines) and the data node path, and can skip individual nested fields; SQL supports a file encoding (detected automatically or given explicitly, such as GBK). The preview and the import run use the same options, so the mapping shows what is imported. by @openai0229 in #2921
  3. Ultra-fast CSV import mode: after the file preview an "Ultra-fast mode" can be enabled, which imports in parallel batches over a dedicated connection and adapts concurrency and batch size to the measured throughput; a failure or cancellation cancels the registered statements and waits for every worker to stop, and the standard mode stays the default. by @liushikuan63 in #2908
  4. Update Time column in the table list: shown after Create Time, left empty when unknown, translated in all five languages. by @openai0229 in #2915
  5. Oracle EXPLAIN PLAN shows the execution plan: the statement runs under a generated statement id, the plan is read back from PLAN_TABLE through DBMS_XPLAN.DISPLAY and returned as a result set; a missing PLAN_TABLE reports an actionable message, and EXPLAIN PLAN ... INTO <custom table> still goes to the database. by @openai0229 in #2945

Optimization (4)

  1. SQL execution log filtering: records can be filtered by data source, database, schema and SQL content, and the available filters follow the capabilities of the data source, which makes a specific execution record much easier to find.
  2. More reliable task center polling and paging: records are merged by id and update time, terminal states and already loaded history are kept, responses that arrive after a task was deleted or the panel was closed are dropped, a failed load ends the loading state with a retryable error, tasks cancelled abnormally no longer stay in RUNNING, and cancelling a task no longer cancels the same statement twice. by @HandSonic in #2795
  3. MCP token reset is serialized: a reset shows a busy state, repeated clicks no longer create several tokens, and a stale callback no longer overwrites the newest token. by @HandSonic in #2845
  4. Editable results for single-table subqueries: queries such as SELECT * FROM (SELECT * FROM APP.EVENT_LOG ORDER BY CREATE_TIME DESC) WHERE ROWNUM <= 100 now resolve the physical table key, so the result set can be edited directly and a single row can be located. by @openai0229 in #2916

Fixed (27)

  1. Redis key updates validate the type: a missing or unknown old or new key type reports an error instead of falling back to string commands that delete and recreate the key. by @Aias00 in #2437
  2. ClickHouse connections and database switching: fixed connection failures when a database name contains spaces or special characters, and wrong connection parameters when switching databases.
  3. CockroachDB editing without a primary key: updates and deletes use the native LIMIT 1 form and keep the original row predicate instead of failing with PostgreSQL's ctid, and rows are identified correctly. by @Aias00 in #2484
  4. Redshift and CockroachDB database creation: each dialect generates a concise CREATE DATABASE, Redshift hides the unsupported database comment, and creating a database or schema stops after the first failing statement instead of overwriting an existing database comment with a duplicate-name error. by @Aias00 in #2486
  5. Informix table operations: renaming a table, changing a column and reading the execution plan are generated by the Informix plug-in, owner references are correct, character type aliases are no longer collapsed, and column changes validate constraints first instead of silently removing constraints or foreign keys. by @Aias00 in #2488
  6. DB2 object definitions: fixed SQL syntax errors when viewing view, function and stored procedure definitions.
  7. DuckDB paging: pagination uses LIMIT … OFFSET instead of the comma syntax DuckDB does not support. by @Aias00 in #2490
  8. JSON import null semantics: a missing field and an explicit null are distinguished, both are written as SQL NULL, non-object records are rejected before an INSERT is generated, and empty records no longer fail the import. by @HandSonic in #2809
  9. Clearer import failures: a failed CSV, XLSX, XLS, JSON or SQL import names the setting that caused it (encoding, data node, file row or column, duplicated source field, column range, row range) or reports the database error class with its SQLState and error code. by @openai0229 in #2921
  10. Exports no longer overwrite a file with the same name: an occupied target name falls back to a numbered available name, and a failed copy is rolled back and cleaned up on the next start. by @HandSonic in #2800
  11. Complete cleanup when deleting tasks: deleting a finished task no longer leaves task records or export files behind when the application exits or a file operation fails, and the cleanup continues after a restart.
  12. Dashboard list and refresh: an oversized page number returns an empty page instead of an index error, the dropdown keeps loading when a dashboard has more than 20 items, a failed request shows a retryable error state while keeping already loaded data, and a failed refresh no longer leaves the dashboard loading forever. by @HandSonic in #2812
  13. Out-of-range paging: console records and table data compute offsets with long arithmetic, so a very large page number returns an empty page instead of wrapping around or throwing IndexOutOfBoundsException. by @HandSonic in #2815 #2824
  14. Corrupted caches recover: a corrupted scalar JSON entry no longer makes the key unusable for the rest of its TTL; only the damaged key is removed and the cached value is rebuilt. by @HandSonic in #2828
  15. A failed save no longer leaves memory and disk out of sync: data source order, namespace position, ER-diagram position and small data writes are persisted before memory is updated, so a failed write is not shown as saved and does not revert to the old state after a refresh. by @HandSonic @Aias00 in #2480 #2830 #2840 #2846
  16. Data source saving and tree refresh: saving twice quickly no longer creates duplicate data sources, a failed drag or move no longer shows a wrong position, a data source created from the group menu expands the group and locates the new connection, hidden settings are kept when the tree is refreshed, and a successful save is no longer reported as failed when the refresh fails.
  17. Table data filters and sorting: an invalid filter or sort condition no longer closes the editor: the previous result is kept and the query can continue after the condition is fixed or cleared.
  18. @ suggestions in AI input: fixed broken table and view suggestions and stale suggestions after switching data sources.
  19. More reliable AI conversation history: sessions and message history are written with a temporary file and an atomic replace, so an interrupted write no longer destroys the last usable history, and a failed message deletion rolls back the session index instead of losing the owning record. by @HandSonic in #2843 #2841
  20. Custom model connection test: a very long error message no longer overflows the dialog; the detail is bounded and scrollable.
  21. Line endings when copying results on Windows: copied result rows use CRLF, so pasting into native programs such as SAP GUI no longer merges the rows or shows #. by @openai0229 in #2909
  22. SSH connection test failures: a failed request or a desktop timeout reports a clear message instead of leaving the test loading or repeating the message. by @Aias00 in #2548
  23. Cursor flickering in the Windows editor: moving the mouse inside the SQL editor no longer switches between the arrow, I-beam and zoom cursors, and macOS and Linux keep their previous behaviour. by @openai0229 in #2922
  24. Duplicated connections keep their fields: duplicating a data source keeps the login user, Service Name, key file, BigQuery and other fields, deep-copies the SSH, driver and extension configuration, and resets runtime handles. by @HandSonic in #2793
  25. Local data source filtering: alias search and type filters apply before paging and counting, PRIVATE and SHARED match case-insensitively, and a missing type in older data is treated as private. by @HandSonic in #2820
  26. Clean process exit: the cookie cleanup thread is a daemon thread, so exiting or stopping the service no longer blocks process termination. by @Aias00 in #2522
  27. Redacted IPC debug logs: passwords, SSH passphrases and JDBC connection strings in desktop request and response debug logs are no longer written in clear text. by @Aias00 in #2473

Full Changelog: v5.3.6...v5.3.7