v0.19.0
Schemaic v0.19.0 — typed cell editing, MySQL scheduled events, whole-table export, and an interface scale that finally fits the whole app.
Highlights
- Edit a column by what it holds. Cells now open the control their type deserves — a calendar for dates, a picker for
ENUMandSET, a toggle for booleans, a JSON tree — in the grid and the row panel alike, with paste a clipboard block onto a selection and NULL rendered distinctly from the word "NULL". - MySQL scheduled events. Browse and edit them from the schema tree like any other object.
- Export a whole table, not just the rows fetched — and the app now tells you what it could not write, instead of quietly writing a placeholder.
- Interface scale, retuned: each step is named by its percentage, and the app's own chrome scales with it rather than only the editor.
Improvements
- Read a capped result again at a bigger cap, from the notice itself.
- Statement timeout — an optional bound on a runaway query.
- Scroll the last row (or line) to the top of the pane, in both the grid and the editor.
- The log file has a route out of the app, and a panic is recorded in it rather than nowhere.
- Copy and paste follow the columns as drawn, so a reordered or frozen column no longer lands values in the wrong place.
Performance
- Wide results stream faster: the per-cell type walk happens once per result rather than per cell, and a streamed chunk is bounded by bytes.
- Pasting a large block stages in a single update instead of one per cell.
Fixes
- A failed export leaves the original file untouched — it writes a
.partsibling and renames it only on success. - A second PostgreSQL result set no longer merges into the first set's columns.
- A locked SQLite file now says what is holding it, and waits rather than failing outright.
- A failed DDL asks the server whether it spent the transaction, instead of assuming.
- A statement that was never sent is reported as that, not as a timed-out query.
- Dates: a UTC offset MariaDB refuses to read is no longer sent, and the offset follows the destination rather than the old text.
- Bit-fields export as numbers, and blobs no longer reach the formats that read them back.
- The log opens owner-only, and the SSH driver can no longer be asked for a password through
RUST_LOG. - Modals keep the window's keyboard, cap against the layer they are centred in, and the title bar keeps working underneath them.
- Menus, calendars and dropdowns open clear of the control that drops them, and close with the cell that opened them.