Releases
v0.74.0
Compare
Sorry, something went wrong.
No results found
Added
Strikethrough on a row queued for deletion, and an underline on a new row or an edited value.
Google Cloud Spanner as a registry plugin over the REST API. (#1226 , #2480 )
Weaviate as a registry REST plugin, collections as tables. (#1724 )
TiDB and Databend connection types on the MySQL driver. (#1066 , #2514 )
Empty state in the inspector and the assistant for a connection that is not up.
Check connections in Settings > General, including Only when I use the connection. (#2700 )
Cloudflare R2 SQL driver, read-only, for Iceberg tables in R2 Data Catalog. (#2030 )
Tips for preview tabs, Open Quickly, and query history.
Full changelog from Help and Software Update settings.
Enable Plugin , Open Plugin Settings and Edit Connection… on a connection whose driver cannot load.
Invisible characters shown in the SQL editor: control characters, zero-width spaces, bidi controls and special spaces. (#2717 )
Remove Invisible Characters in the Query menu. (#2717 )
Show invisible characters in Settings > Editor. (#2717 )
Warnings in the SQL editor for full-width punctuation, curly quotes and non-ASCII spaces. (#2717 )
Highlight rules that color data grid rows or cells by value. (#2723 )
Encoding option for MySQL and MariaDB, with UTF-8 via Latin 1 for Latin 1-written databases. (#2725 )
Refresh Materialized View… on PostgreSQL, with a concurrent refresh where the view qualifies. (#2726 )
Show DDL and Copy DDL for views and materialized views. (#2726 )
Edit Comment… for PostgreSQL tables, views, materialized views and foreign tables. (#2726 )
UTF-16 LE, UTF-16 BE and Windows-1252 in the SQL import encoding menu.
Map view for a result holding a geometry column, drawn with MapKit over Apple's own tiles. (#2532 )
Max INSERT size for SQL export, 1 MB by default. (#2533 )
Largest INSERT written, in the SQL export summary. (#2533 )
Changed
Syntax-highlighted, scrollable statement in the query confirmation, with Copy All and the caller's name. (#2759 )
5 MB smaller app bundle.
7 MB smaller DMG download.
Connect progress reads as a labelled bar, with a step named only where the app is waiting on something outside itself.
BigQuery Google sign-in runs from a Sign In prompt, and its refresh token is kept in the keychain.
First launch opening on the welcome window, whose empty list offers the sample database and import from another app.
New Connection… and Import on the welcome window, named as in the File menu.
Open Project Folder… in File > Import.
First-launch tour replaced by a one-page welcome sheet, shown again from Help > Getting Started.
Beancount connections held at Safe Mode Read-Only. (#2030 )
MySQL sessions on the server's default utf8mb4 collation.
Structure editor options the connected server does not support left out, FULLTEXT and SPATIAL among them.
Structure tab read-only on a view, a materialized view, a foreign table or a system table outside PostgreSQL. (#2726 )
Fixed
Editor and results divider of one query tab following whichever tab in the pane was opened first.
Divider position of every query tab ever opened kept in preferences forever, slowing every launch.
Data grid and bottom bar cut off at both edges in a narrow window, with rows and pagination buttons out of reach.
Filter panel wider than the pane when a table has a long column name.
bytea values written as a bit string in a PostgreSQL SQL export, which no restore accepts. (#2533 )
A gzipped SQL export emptying the file it was overwriting before compressing, and deleting it on failure. (#2533 )
Parts of a split SQL export left on disk unnamed when a later part could not be written. (#2533 )
SET IDENTITY_INSERT missing from every part after the first of a split SQL Server dump. (#2533 )
CREATE TYPE and CREATE SEQUENCE left out of a SQL export with no warning when the lookup failed. (#2533 )
Stop doing nothing while a gzipped SQL export was compressing. (#2533 )
Export status never reaching the progress sheet, and an import showing a row count in place of its own. (#2533 )
Binary values unrestorable in an Oracle SQL export. (#2533 )
Transfer or copy of a table of megabyte values rejected as one oversized INSERT. (#2533 )
Multi-row INSERT statements Oracle cannot parse when importing a CSV, JSON or XLSX file. (#2533 )
Multi-row INSERT statements Oracle cannot parse in a SQL export. (#2533 )
Minutes spent rendering hex literals when a SQL export reached a binary column. (#2533 )
ClickHouse Drop Partition and Detach Partition hitting the sidebar's database, unconfirmed.
Import listing one database's tables and mapping their columns while the rows went to another.
New Table created in the database the sidebar moved to rather than the one its own tab names.
Show All Tables listing whichever database a cross-database tab last left the connection on.
Sidebar Refresh reloading the object list from a container the user is not browsing.
Wrong export row total where the objects picked span more than one database.
Snowflake foreign keys into another database opening the current database's same-named table.
Wrong database read, and written, by a connection whose startup commands select one of their own.
None in the foreign key picker's Label menu forgotten on reopen.
Elasticsearch geo_point columns classified as integers.
MySQL and MariaDB geometry values losing their SRID.
MySQL GEOMETRYCOLLECTION columns classified as text.
Empty GEOMETRYCOLLECTION from MySQL rendered as invalid WKT.
MySQL geometry with a Z or M ordinate read from the wrong offset.
Elasticsearch geo_shape values cut off at 10,000 characters.
A tab stranded in JSON or Chart mode, with no way back to Data, after a statement that returns no columns.
Prompt for password lost when importing a TablePlus connection set to Ask everytime .
TablePlus import saving a password for a connection TablePlus was set never to store one for.
TablePlus import reading the CA certificate and client key paths the wrong way round.
MySQL and MariaDB reads of an object in another database answering about the current database's. (#2769 )
Nested foreign key chevrons in the row inspector pointing into the database the sidebar is on rather than the referenced one.
Ref Columns in the structure editor stuck on Custom… after one failed read, with no error and no retry.
Ref Columns reading the sidebar's database instead of the tab's.
Empty Ref Table menu in the structure editor on MySQL, MariaDB, TiDB, PostgreSQL, CockroachDB, Redshift, SQL Server and DuckDB.
New Trigger and Drop Trigger naming the sidebar's database rather than the table's.
describe_table over MCP answering with one database's columns beside another's indexes, foreign keys, row count and DDL.
Foreign key arrow replacing the tab you were reading. (#1421 )
Applied filter left in the panel after cancelling the unsaved-changes alert on a foreign key jump.
Select All painting the whole column header row as selected, and leaving a cell cursor on the first cell.
Column header shown as selected after a cell drag reached the first and last row of the page.
No outline around a swept cell block whose rows reached both ends of the page.
Cmd+clicking a selected column header never deselecting it.
Escape not clearing the selection after Select All.
Silently lost edit on a table with no primary key holding a FLOAT, DOUBLE or JSON column.
A save on a table with no primary key reporting success when it matched no row.
SQL Server and Oracle reporting zero rows affected for every INSERT, UPDATE and DELETE.
Query confirmation dialog cut to the first 200 characters of the statement. (#2759 )
Statement folded onto one line and cut at 400 characters in an MCP client's approval prompt.
Blank line under "Are you sure you want to execute this query?" when confirming a rename.
Row numbers and their divider painted over the find bar, the filter panel and the result tab bar.
Empty Columns tab and no autocomplete for PostgreSQL materialized views. (#2726 )
Discard restoring a different row than the one edited under a column value filter.
Add Row under a column value filter selecting and opening the wrong row for editing.
Data grid ignoring the theme's background, text, alternate row, NULL, boolean and row number colors.
Text past the first 64 KB of a UTF-16 SQL import arriving byte-swapped.
SQL import failing on a file whose encoding is not UTF-8 when a character lands on a 64 KB boundary.
Garbled non-Latin text saved from iPhone and iPad to MySQL servers that force a Latin 1 session. (#2725 )
Encoding ignored on iPhone and iPad by a MySQL connection synced from the Mac. (#2725 )
Binary MySQL columns shown as text on iPhone and iPad, and searched with LIKE.
Crash opening a MySQL result whose column has no name on iPhone and iPad.
Wrong SQLSTATE code in PostgreSQL, Redshift, CockroachDB and PGlite error messages.
Read-only write explanation never shown on PostgreSQL servers.
Trigger editing and the New Trigger template failing on PostgreSQL 13 and earlier.
Reindexing a whole PostgreSQL database failing before PostgreSQL 16.
Schema copy, check constraint rename, column reorder and role editing failing on older PostgreSQL servers.
FULLTEXT and SPATIAL index types creating a plain B-tree index on PostgreSQL.
Table list, foreign keys, triggers, check constraints, types and grants failing on PostgreSQL 9.1 to 9.5. (#2734 )
Wrong index column order on PostgreSQL 9.4 and earlier.
Sequences missing from SQL dumps of PostgreSQL 9.6 and earlier.
Create Database failing on PostgreSQL 9.6 and earlier.
PostgreSQL unique and primary key indexes shown as plain indexes.
PostgreSQL triggers shown as disabled.
PostgreSQL NOT VALID check constraints shown as validated.
Redshift DISTKEY missing from a table's indexes.
CYCLE dropped from PostgreSQL sequences in SQL dumps.
PostgreSQL index columns and enum labels containing a comma or a space split apart.
Foreign keys to a partitioned table listed once per partition on PostgreSQL 12 and later.
PostGIS values left as hex after switching schema.
Open transaction aborted when a PostGIS value could not be converted.
PostgreSQL all-tables metadata failing for a mixed-case table name.
Default PostgreSQL schema taken from the schema list rather than the search path.
Safe Mode minimum from a configuration profile missing from the toolbar, the Database menu and the connection form. (#2030 )
PostgreSQL connection hanging after running COPY FROM STDIN or COPY TO STDOUT in the query editor and on iOS.
Table, view and column comments missing from a PostgreSQL SQL export. (#2726 )
Stop not ending queries on MySQL and MariaDB servers without TLS.
Wrong results after MySQL retakes a dropped connection, on a session that had set a variable, a session setting or a database.
Session state set by the /*! ... */ statements a MySQL dump writes counting as a comment.
Users & Roles failing, Stop not ending queries and sequences listed as tables on TiDB servers opened as MySQL.
Truncated, unformatted release notes in the update dialog, with fixes listed before new features.
Blank welcome window list when a search matched nothing and a favorite existed.
Welcome window reading No Connections while a tag filter hid every connection.
Favorited connection inside a group listed twice on the welcome window.
Missing red wash on a row deleted together with a new, unsaved row.
Welcome window tag filter stuck on a tag no connection carries any more, hiding every connection.
Collapsing every group on the welcome window undone at the next launch.
Linked Folders and Team Library connections ignoring the welcome window search, with no context menu.
Dragging a connection in filtered welcome window results snapping back without moving it.
Welcome window context menu leaving linked connections out of a mixed selection.
Idle metadata connections held open for the life of the app, up to six per connection. (#2700 )
MongoDB connections reading as healthy after the server went away. (#2700 )
Password prompt raised by a background reconnect, on whichever window was in front. (#2700 )
Health check entering the same connection as a running import. (#2700 )
Startup commands, query timeout, database and schema lost after a health check quietly reconnected. (#2700 )
Table transfer abortable by Stop from an unrelated tab, part-applied. (#2700 )
SQLite, DuckDB and Teradata connections pinged every 30 seconds despite opting out of health checks. (#2700 )
Data grid dropping the UTC offset from a timestamp with time zone value. (#2702 )
Edits accepted on a SQLite remote file, which only ever changed the local copy. (#2030 )
Oracle TIMESTAMP values carrying a Z the column never stored. (#2702 )
Timestamp shown an hour late, and its time lost on an edit, when the value falls in the reader's daylight-saving gap. (#2702 )
Timestamp stored on a day the reader's time zone skipped rendering as raw text with no date picker. (#2702 )
Sub-second precision missing from timestamp cells, merging distinct values into one entry in the column filter. (#2702 )
Grid cells still reading in the old time zone after the Mac's time zone changed. (#2702 )
Connection colour set on an iPhone not showing on the Mac, and the reverse.
Connection still reading as read-only on an iPhone after read-only was turned off on the Mac.
Window rebuilding its own layout three times while a connection opens.
Connecting screen naming the wrong step for the first half second of a connect.
Spinner flash in the object browser on Oracle, Snowflake, BigQuery, Trino and Dameng.
Start of every line hidden in the SQL editor after a long line was removed. (#2709 )
Query error underlines on the wrong text or missing after a tab switch or loaded query, with no way to read them.
Start of a line hidden under the line numbers after moving to it in a horizontally scrolled editor.
Editor jumping sideways on each keystroke in a long line while scrolled horizontally.
Cursor left off screen after pasting a long line.
Option+Delete and Option+Arrow splitting an emoji or accented letter in the SQL and JSON editors.
Line number column keeping a stale width after the line count drops below 1,000 or the font size changes.
BigQuery statements broken by an apostrophe or a backslash in a value or filter.
BigQuery grid inserts writing __DEFAULT__ into columns, and saving byte values as NULL.
BigQuery grid edits failing with type errors after a reconnect.
BigQuery grid edits matching more rows than the edited one when a value started with { or [.
BigQuery filters with starts with, ends with, not contains, between, regex or is empty ignored.
BigQuery No limit query timeout stopping jobs after 30 seconds.
BigQuery Google sign-in opening the browser again on every connect.
Crash reading a malformed BigQuery service account key.
ARRAY<BOOL> columns opening a checkbox editor, and BYTES columns editable as text.
Line after the data grid's row numbers drawn twice as thick as the other column lines.
# heading in the data grid darker and dimmer than the headings beside it.
Row numbers showing the scrolled columns through them on every other row in dark mode.
Row numbers keeping the selection's accent colour after the data grid lost focus.
Clicks and double-clicks below the last row ignored in the row-number column.
Column headings out of line with their columns after moving to a column hidden under the row numbers.
Data grid row menu instead of the Structure menu when right-clicking a pinned row number on the Structure tab.
VoiceOver finding no row over a pinned row number.
Column lines showing through the row numbers below the last row.
Empty rows below the last row striped brighter than the rows in dark mode.
Row numbers keeping their old stripes after turning alternate rows off or changing the row height.
TablePlus imports of SQL Server, CockroachDB, Cloudflare D1, libSQL and Elasticsearch typed so they never connect.
DuckDB file connections imported from TablePlus without their file.
Unsupported engines imported silently and checked by default, or dropped from a Beekeeper Studio import.
Import preview calling an unrecognized database type "not installed".
Imported connections unable to connect when the source app spelled the engine name in a different case.
Wrong default port on Redshift and CockroachDB connections imported without one.
Object browser replaced by "No Tables" for a database with procedures but no tables.
Procedures, functions and triggers missing from the object browser on Oracle, Snowflake, BigQuery and Dameng.
Empty schema list labelled "No Datasets" on Oracle, Snowflake, Dameng and Trino.
Connect error blaming a missing plugin for a connection whose database type is not recognized.
Connecting silently switching a disabled plugin back on.
Plugin install error replaced by "not installed" when connecting.
Test Connection doing nothing after installing the plugin it asked for.
Safe Mode and run buttons misreading statements beside invisible characters, CRLF or MySQL conditional comments.
Connecting removing a plugin that failed to load, and its settings, when no replacement could be downloaded.
Disabled plugin's code loaded when a connection looked up its driver.
Failed connect from an opened file or URL titled "Disconnected", with Reconnect as its only fix.
Database error messages hiding invisible characters, such as a backspace quoted back from a query. (#2717 )
Connection Failed alert covering the window that already showed the same failure.
Invisible control characters typed into a query by an input method or a Control-key chord such as Ctrl+Option+H. (#2717 )
Escape and Tab taken from an input method mid-composition in the SQL editor, and AI suggestions shown during it.
Statement with a NUL character running only up to it on SQLite and PostgreSQL, dropping its WHERE clause. (#2717 )
Vim Replace mode writing an invisible character for Backspace and keypad Enter. (#2717 )
Option and Control chords editing text in Vim Normal and Visual mode, and Vim's Ctrl commands never running. (#2717 )
Line and paragraph separators (U+2028, U+2029) shown as line breaks the database does not see. (#2717 )
Stop on Cloudflare D1, libSQL and Trino cancelling a sidebar read instead of the running query.
Numeric-looking filter values sent unquoted to text columns when a table first opens or after a foreign key jump.
Missing column comments, identity flags and generated flags on PostgreSQL views, partitioned and foreign tables.
Wrong primary key columns when another table reuses the key's constraint name on PostgreSQL and Redshift.
Restore reported as failed after a complete restore into a PostgreSQL server older than pg_restore.
Garbled non-Latin text saved to MySQL and MariaDB servers that force a Latin 1 session. (#2725 )
Garbled non-Latin text when restoring a MySQL or MariaDB SQL export through a Latin 1 client. (#2725 )
Curly quotes, € and other Windows-1252 symbols shown as invisible characters after SET NAMES latin1.
Illegal mix of collations comparing a column with a user variable on MySQL 8.
GEOMETRY values from a parameterized MySQL query shown as raw bytes.
Earlier row's text repeated in later rows of a parameterized MySQL query once a value passed 64 KB.
Wrong row deleted or updated after an edit took a row out of a column value filter.
Garbled non-ASCII text on PostgreSQL databases not encoded in UTF-8 after RESET ALL or DISCARD ALL.
Garbled or double-encoded non-ASCII text on iOS with PostgreSQL databases not encoded in UTF-8.
Garbled non-ASCII text when restoring a PostgreSQL SQL export into a database not encoded in UTF-8.
Display As formats and foreign key labels lost on a rename, and kept with column layouts after deleting a connection.
Foreign key value picker failing to read a referenced table in another MySQL database. (#2768 )
MySQL table reached through a foreign key keeping its own filters, column layout, highlight rules and Display As formats. (#2768 )
Referenced database shown as a schema in a MySQL tab title and in the foreign key picker's header. (#2768 )
Composite foreign keys listing mismatched column pairs on iOS, CockroachDB and Redshift.
Foreign keys missing on iOS for a PostgreSQL role that does not own the table.
Redshift foreign keys from other schemas shown on a table.
PostgreSQL view definitions without security_barrier, security_invoker or the check option. (#2726 )
PostgreSQL view definitions that bind to another schema's tables when run elsewhere. (#2726 )
CREATE TABLE in Structure > DDL for a PostgreSQL view or materialized view. (#2726 )
Edit View Definition in the Database menu opening a same-named view from the browsed schema. (#2726 )
Edit View Definition enabled in the Database menu on a read-only connection. (#2726 )
Enum types and sequences written in front of a PostgreSQL view's DDL. (#2726 )
Garbled ClickHouse text whenever another value in the same result held binary data.
Carriage returns, quotes, NUL bytes and Enum type names shown with backslash escapes on ClickHouse.
Edits and deletes matching no row on ClickHouse tables with a binary value in the row.
Binary ClickHouse values written as replacement characters by an export, an object copy and a compare. (#2725 )
ClickHouse export with a Row limit failing with a syntax error. (#2725 )
Non-ASCII SQL Server filter values turned into ? and matching the wrong rows on non-Unicode collations.
Empty structure, missing indexes and failed renames for non-ASCII SQL Server object names on non-Unicode collations.
Changing a defaulted SQL Server column failing when a name contains a quote or non-ASCII text.
CockroachDB DDL, view definition and index reads ignoring the schema of an object outside the current schema. (#2726 )
Silent replay of a PostgreSQL statement on a new connection after a drop, a lost COMMIT reported as saved included.
Query timeout and startup commands missing after the PostgreSQL driver reconnected on its own.
Server Dashboard sessions, metrics and slow queries failing on PostgreSQL 9.6 and earlier.
One unanswered metric emptying the whole Server Dashboard metrics panel on PostgreSQL, Redshift and CockroachDB.
MCP get_server_dashboard reporting a panel the server could not read as an empty list.
Backup and restore failing on PostgreSQL 9.1 when the pg_dump or pg_restore found first is version 15 or later.
Missing execution time in query plans on PostgreSQL 9.3 and earlier.
Cross-engine copy and JSON import creating jsonb columns on PostgreSQL 9.3 and earlier.
SQL Server edits and deletes matching no row when the row is identified by a binary column.
SQL Server parameters sent to the wrong placeholders when a column name holds a question mark.
Maintenance offered on views and sequences, where the server skips or refuses it. (#2726 )
Maintenance running against a same-named object in another schema. (#2726 )
Maintenance SQL preview showing a statement the app never runs. (#2726 )
[ in a SQL Server filter value read as a wildcard.
Non-ASCII text turned into ? by Copy as INSERT, Copy as IN, compare scripts and column defaults on SQL Server.
Structure tab offering column, index and constraint edits that views and materialized views refuse. (#2726 )
Removed
Focus Border color in the theme editor.
Security
TablePlus connections set to VERIFY-IDENTITY or VERIFY-FULL imported with TLS turned off.
BigQuery Google sign-in accepting an authorization response without PKCE or a state check.
PostgreSQL sessions inheriting standard_conforming_strings = off, which let a backslash break out of any quoted literal.
PostgreSQL catalog, comment and password literals escaped by quote doubling alone, which a backslash can break out of. (#2726 )
An MCP token without Full Access approving its own write and skipping TablePro's confirmation dialog.
You can’t perform that action at this time.