Added
- JSON tab in the inspector, showing the selected row as JSON, with Show Row as JSON on a row's right-click menu.
- Foreign key expansion in the JSON tab, fetching the referenced row on click, five levels deep.
- Filter field in the JSON tab, taking text or a regular expression in slashes.
- Always Expand Foreign Keys in the JSON tab, off until turned on.
- JavaScript shell for MongoDB queries, with mongosh's
dbAPI, cursors, variables, functions andprint. - Per-connection MongoDB shell state, carried from one statement to the next.
- Cursor method autocomplete after
find()andaggregate(). - Copy To and Duplicate Database, carrying structure, data or both to any connection. (#2487)
- Search in the connection, database and schema picker that Copy To and Compare & Sync share. (#2487)
- Move Column Up and Move Column Down on a column's right-click menu, with the reason where the engine cannot. (#2479)
- Copy on a column's right-click menu in Structure, for the cell under the pointer.
UpandDownwhile editing a cell, moving the editor to the same column of the row above or below. (#2569)- Tab rows in Settings > General > Tabs, wrapping the strip instead of scrolling it. (#2438)
- Autoscrolling while dragging a tab past the end of the strip. (#2438)
- Move Tab to New Window on a tab's right-click menu, and by dragging a tab out of the strip. (#2438)
- Column reorder by dragging on ClickHouse and Oracle. (#2479)
- Column reorder on PostgreSQL, SQLite, libSQL, Turso and Cloudflare D1, through a previewed table rebuild. (#2479)
- Recognition of SQLite and DuckDB databases by their contents, whatever they are named. (#2476)
.parquetfiles in Finder's Open With, read through DuckDB. (#2476)- Prompt to install the driver a file needs, before the file opens. (#2476)
- Korean, Turkish, Vietnamese and Chinese for the 742 untranslated strings, and for the document kinds Finder shows.
Changed
- MongoDB statements split as JavaScript rather than at every semicolon.
- MongoDB editor diagnostics report JavaScript syntax errors rather than unsupported method names.
- Editor tab presses handled by AppKit rather than SwiftUI gestures. (#2438)
- Connection-first labels with the database or schema on a second line in the connections strip. (#2550)
- Column reorder withheld, with the reason on the row number, where the engine cannot change column order. (#2479)
- File > Open File… as an app command over every file TablePro reads. (#2476)
Fixed
- Row inspector lag on hover, on a tab switch and on every keystroke, from re-parsing each field's value.
- The data grid's row commands on a column's right-click menu in Structure, when the column was already selected.
- Wrong keyboard shortcuts shown beside Copy Name and Duplicate in the Structure right-click menu.
- Plugin download reporting no progress at all when a connection or a file needs a driver installed.
- Parse error on any MongoDB filter written in shell syntax, such as
db.orders.find({status: 1}). - MongoDB
.sort()and.projection()silently ignored when written with unquoted keys. - Tab drag doing nothing, about one drag in seven. (#2438)
- Tab drag released on a neighbour's exact centre leaving the order unchanged. (#2438)
- Compare & Sync unable to drop an overloaded PostgreSQL routine, or any trigger.
- PostgreSQL sequence DDL naming the schema it was read from, in SQL export and the structure editor.
- Half-composed input method text saved and left behind when
Tabmoved the cell editor. - Cell editor opening off screen when
Tabwrapped onto a row below the visible ones. - Cell cursor left on the old column after
Tabcarried the editor to the next one. - Every data grid switching to its accessibility layout after one
Tabpress, with no assistive app attached. - Crash loop on every launch after resizing a column on a database with a long file path, with iCloud sync on. (#2575)
- SSH Agent auth prompting for a private key passphrase instead of reporting that the agent was never reached. (#2583)
- "SSH password rejected" on an SSH connection that has no password, when the server offers no keyboard-interactive.
- NULL pre-filled into an identity column on Add Row, failing the insert on PostgreSQL. (#2588)
- No "Default" in a cell's Set Value menu for an identity column. (#2588)
- Duplicate Row copying an identity column that is not the primary key. (#2588)
- Editing a
GENERATED ALWAYS AS IDENTITYcell, which the server rejects on save. (#2588) - Generated and identity columns editable again after a tab switch or a refresh that reused cached metadata.
- A new row of nothing but server-assigned columns silently dropped from the save.
OVERRIDING SYSTEM VALUEandsetvalin a SQL export of a SQL Server database.- PGlite
$$bodies split at their inner semicolons, from treating PGlite as a generic SQL dialect. - Paste, Fill Column and the row inspector staging an edit to a column the server owns. (#2588)
- A rerun answered from cache adopting another pinned result's column metadata. (#2588)
- Add Row and Duplicate Row offered before a table's schema has loaded. (#2588)
- Missing
SET IDENTITY_INSERTaround a SQL Server table's rows in a SQL export. (#2588) - Row inspector editing a column the driver marks immutable, such as MongoDB's
_id. - Add Row and Duplicate Row inert for good on a result the user switched away from while its schema was loading. (#2588)