Skip to content

v0.19.0

Choose a tag to compare

@github-actions github-actions released this 26 Aug 05:37
· 244 commits to main since this release

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 ENUM and SET, 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 .part sibling 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.