Improved progress display

Previously, the progress bar updated only after completing an entire table.

For large tables such as LIBARC, this could make the application appear to have stopped responding.

Phase 10 updates the interface while rows are being exported.
This commit is contained in:
Mark Gregory
2026-10-16 22:35:27 +01:00
parent 788c3373d8
commit b051a36ca4
47 changed files with 819 additions and 283 deletions
+11
View File
@@ -0,0 +1,11 @@
# Phase 17 — SQL Editor Productivity
- Added persisted query execution history (latest 200 statements), including timestamp, connection, schema, success/failure, and error details. Schema-list refreshes are not recorded.
- Added History panel with filtering, reopen in a new tab, and clear history.
- Added a persistent saved SQL query library, with save, filter, open, and delete.
- Added AppKit SQL keyword completion via NSTextViewDelegate's standard completion interface (typically Esc or Option-Esc depending on macOS key bindings). Completions are keyword-based, not live schema-aware.
- Preserved the existing SQL syntax highlighting and query tab handling.
## Caveats
History and saved SQL are stored in local UserDefaults and may contain sensitive SQL text; avoid executing statements containing literal secrets if local history retention is a concern. Results remain subject to the existing protocol row cap. This phase has not been built in Xcode or tested against a live server.
+18
View File
@@ -0,0 +1,18 @@
# Phase 18 — SQL Editor and Result Grid
Built from the Phase 17 project archive and includes the correction for the Phase 17 `localizedCaseInsensitiveHasPrefix` compilation error.
## Changes
- Execute highlighted SQL independently of the complete editor buffer (Run Selection).
- SQL completion includes cached table and view names loaded in the Schemas navigator, alongside SQL keywords. Column-aware suggestions are not yet implemented.
- Case-insensitive local filtering of query result rows.
- Local result sorting by chosen column, ascending or descending.
- CSV export of the currently displayed rows, with RFC-style doubled quotes, UTF-8 BOM and CRLF line endings.
- Query elapsed wall-clock time, shown after execution completes (includes connection overhead).
## Limitations
- Result grid filters/sorts operate only on rows returned by the existing query engine, not the full database table.
- The CSV writer constructs the file in memory and should not be used for huge result sets.
- SQL autocomplete suggestions depend on schemas already loaded; no column metadata is fetched.
- No new SQL error underlining was added.
- Not compiled on macOS or tested against a MySQL server; run xcodebuild on the Mac.