Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 07:27
· 298 commits to main since this release

Changelog

Features

  • 7249b71 F14.1: M14 docs 122dbb1 — a SQLite path that is no file is an error, not a new empty database (mode=rw by default, mode=rwc makes one); DATABASE_URL opens a connection only when connections.toml has none
  • 1a0cc8c F14.1: M14 review of node 2 — A1-8 (a trigger's body is one statement after SQLite's complete.c; no BEGIN before pragma / attach / detach in the manual mode; DATE / DATETIME / TIMESTAMP shown as the standard text and compared by julianday; a REAL compared by number, ?N numbered args; a blob key makes the table read only; temporary connections out of the manager, named by what is free, with a new query), B9-19 (the rollback hook, partial unique indexes, a typeless key found by Eq, no LIMIT after VALUES, a blob is always , rowid and generated columns read only, PRAGMA query_only is a read-only break, no hidden password, the file row of an existing connection, broken connections.toml is the error, case-insensitive names by the dialect), C20-22 (one read loop for MySQL and SQLite in db.EachRow, Capped and SQLArgs; dead code out; references: lazysql drivers/sqlite.go, SQLite complete.c), suggestions a-d, tests on SQLite in the engines' integration tests
  • 3ed5ffe F14.1: SQLite (modernc.org/sqlite, no cgo; binary +3.8 MB to 26.8 MB, cold build 6.6s to 8.0s, the four goreleaser targets build in 30s): internal/db/sqlite (Conn, Engine, catalog by pragma_table_xinfo, rowid as the key and its first column for a table with none, REAL text as SQLite writes it, DEFAULT left out of an INSERT), the SQLite dialect, engine = sqlite with the file as the form's one field, the tree with no schema level, sqlmux ./x.db | postgres://… | mysql://… and DATABASE_URL as a connection kept nowhere
  • babadc1 F14.1: a rowid table's primary key that may hold NULLs is no row identity (docs 9d04fb0): the unique index or the rowid is; t_bk and t_ck in the seed are NOT NULL
  • 5c8c908 F14.1: review round 2 — Eq as two terms that each search an index (the second is one expression of the key, NULL for other text; the AND on the column made a scan of a TEXT or untyped key), the existence check reads mode from the DSN, a duplicate comment out
  • 646750f F14.2: M14 review of node 1 — items 1 (a run whose schema was not set is no statement: a failed and a cancelled SET tested), 2 (C-r over the candidate list is the history's, tested), suggestion a (historySQLMax and historyPath unexported)
  • d250487 F14.2: query history: every statement a query ran (result or failure, a cancel) is a line of history.jsonl, cut to [query] history_max at the start; C-r in a query's INSERT (query.history, also vim = false and the palette) opens the dropdown of the connection's statements, fuzzy filtered, ↵ puts one at the cursor
  • ac7e189 F14.3: M14 review of node 3 — MySQL index statements from statistics (prefix length, DESC, FULLTEXT / SPATIAL, INVISIBLE, an expression as ((expr)), made again they are the same index), group ids a column cannot take, openRef by c.table and revealTab, a dropped PG function an error, plain views no Indexes / Keys and matviews Indexes only, tests for the key order, the extension functions and the toasts (referenced: pgtui internal/db/metadata for PG constraints and indexes; MySQL has no statement of an index to port, built from information_schema.statistics)
  • fa24277 F14.3: a SPATIAL index's statement has no prefix length (statistics reports 32 for one, CREATE SPATIAL INDEX answers 1089); one in the round trip test
  • dce5fc5 F14.3: the tree's objects: a table's Indexes and Keys (fetched with its columns, ↵ on an index shows its statement, on a foreign key opens the table it points at), a schema's Functions (↵ puts the definition in a new query) and Sequences; Indexes, Keys, Functions, Sequences and FunctionDef on the three engines; seeds with indexes, functions and sequences
  • 5a90b97 F14.4: M14 review of node 3 — the placeholder selected without modes too (what is typed takes its place), the palette's Rename table…, MySQL's rename keeps the table's own database, cursorColumn reused, the dead view branch out; tests for each template's selection, an index node, nodes that are no table, a connection not up, and the menu's ends
  • a0d04ed F14.4: lint of the selection test
  • 44433ac F14.4: structure change templates: Add column…, Add index…, Rename…, Drop column…, Drop index… in the table node's menu (a view's: rename) and the palette, each a statement of the engine's own in a new query on the table's connection, the first placeholder (, , , , <new_name>) selected; a column or index the cursor is on is written in
  • 90f51a5 F14.5: M14 review of node 3 — the read only editor's keys, effects and drawing once for the value box and the JSON view (roKey, roDid, textView), a paste, ↵, grid.edit and the ↵ edit hint change no cell behind the view, the view kept over a result's paging and rerun (and turned as it was), the jsonview scope works without modes, esc takes a selection first, :q leaves, q is bound not hard-coded, T (vim's) is no longer taken, clicks and drags in the text, the WHERE typed over the view is the WHERE's, an unchanged page leaves the editor alone, Load keeps no undo step in a read only editor, changes shown by what they hold, the result menu has it, the hint row is ]/[ 翻页 · esc 回表格 from the keymap
  • 8ad392d F14.5: the page of a table or a result as a JSON array in a read only vim in the grid's place (grid.view.json, gJ, the menu and the palette): each record as Y has it, a JSON chip on the query bar, esc or q back to the table, the text following the page and the changes, ] [ R as the table's or the result's, exclusive with transpose
  • 5bf0fe1 F14.6: a cancelled MySQL statement whose KILL cannot get through no longer holds the Worker: 5s after the cancel the driver's ctx is cancelled, the connection closed and the next request redials, as Postgres' DeadlineDelay does (the ponytail limit of F5.4 gone)
  • 463879b F14.7: M14 review of node 3 — the config keeps the theme's unknown keys, not a sentence made before the language is set (the start's note was English for a Chinese user): UnknownKeys and the theme switch say them; one sentence for config.toml, connections.toml and themes (key(s)); a section it does not know is told once; the theme switch keeps both the note and the config.toml reminder; en for 翻页 / 回表格
  • dda0fb8 F14.7: a theme file's unknown keys (tokens, [icon] names and their fields) load and become a start-up note, themes/.toml: unknown keys …, and the theme.switch toast; a color that is no #rrggbb is still an error
  • 55f6d85 F14.7: an unknown [icon] entry is told by its name whatever shape it has (a string was a type error that stopped the start); its keys are not told one by one
  • b6014bf F14.8: M14 review of node 3 — Replace's left = 0 follows nvim's do_filter (ex_cmds.c) in its comment, a test for a last line indented past the view (left 9 for a width of 52 and an indent of 60, measured on nvim 0.12.4), a read only editor's Load keeps no undo step
  • 15974fe F14.8: a text replaced, as gq does, is viewed from its left again: the old view's sideways scroll is dropped in Editor.Replace, where sidescroll kept it with the cursor a few columns off its edge