Files
SQLWorkbench/docs/PHASE59-TABLE-DATA-TOOLS.md
Mark Gregory 312efaa771 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.
2026-10-18 14:27:16 +01:00

25 lines
1.9 KiB
Markdown

# Phase 59 — Table Data Tools
Base: user-supplied `Archive(20261018-132203).zip` (project sources dated 18 October 2026).
## Implemented
- Right-click a table > **Search Table Data…**. Reads column metadata, lets the user choose a column, comparison, value and row limit; generates and runs a SELECT statement in the existing SQL editor.
- Right-click a table > **Import CSV Data…**. CSV wizard loads UTF-8 CSV with quoted-field and escaped-quote support; preview, first-row header toggle, destination column mapping, row progress and per-row errors.
- Right-click a schema > **Import CSV into New Table…**. Creates a new table with TEXT columns (or GEOMETRY columns for selected WKT fields) then imports CSV rows.
- Optional WKT geometry conversion using MySQL `ST_GeomFromText` for selected fields.
- A direct release script in `scripts/release-workbench.sh` builds a macOS Release target and packages project and app ZIPs.
## Limitations and safety
- CSV import executes one INSERT per row. Large files may take time; errors can leave partially imported rows. The wizard reports this.
- Importing into an existing table requires compatible column types, privileges, constraints and mappings.
- The new-table wizard defaults to TEXT; use schema editing to assign stronger types after import.
- WKT is supported; shapefile/GeoJSON file parsing is not included.
- The existing result grid remains read-only. Inline insert/update/delete is **not** implemented in this phase.
- CSV importer expects UTF-8 and comma delimiters.
- SQL literals use quoted strings; MySQL server SQL mode can affect backslash interpretation. Review data and back up tables before bulk import.
## Verification
- Swift parser: `swiftc -frontend -parse WorkbenchReplacement/MainView.swift` passed.
- ZIP integrity checked.
- Full Xcode compile, native UI and MySQL integration tests require macOS and are **not** verified here.