Skip to content

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 07:04
· 95 commits to main since this release

What's new in 1.4.0

Security: SSL "required" now always means encrypted. With MariaDB's client tools - which the PowerShell edition uses for everything, and the desktop edition for Export and Import - a connection set to SSL "required" went on unencrypted when the server had no TLS at all. It is now refused, with a message that says the connection was not encrypted. SSL "default" also uses TLS whenever the server offers it; it used to connect in plaintext. If a server really has no TLS, set the connection to "disabled" knowingly. ("required" encrypts but checks no certificate; use "verify" or "verify-ca" to also know who you are talking to.)

Older and newer servers. Every release is now tested against MySQL 5.7, MariaDB 10.2 and MySQL 9.4 as well as current MariaDB and MySQL. What that found is fixed:

  • MySQL 5.7: with MySQL 8 or later client tools, text came back in latin1, and characters latin1 cannot hold became "?" - in a data-only export, and in the PowerShell edition's grid. A 5.7 dump no longer imports "with warnings" over a harmless note about NO_AUTO_CREATE_USER.
  • MariaDB 10.2: a dump made by a newer MariaDB imports on it. The user editor offers password expiry and locking only where the server has them - Create user used to make the account and then fail half-way - and Create role only where roles exist. Clone copies the grants on 5.7 and 10.2 too.
  • MySQL 9: VECTOR columns show as their bytes in hex and save back exactly.
  • Compare treats a column named in another case as the same column, and a table too on a server that ignores the case of table names (Windows and macOS) - it used to offer them as missing, and the fix then failed.

PAM sign-in (desktop edition). Accounts that sign in through PAM or LDAP can connect, over an encrypted connection. On MariaDB the server has to ask with pam_use_cleartext_plugin=ON; the connection error says so when it does not.

Editing

  • Pick several cells and set them all to NULL or empty from the right-click menu; the change is staged like any other.
  • Set NULL is offered only where the column can hold NULL, and the NULL button no longer spills into the cell next to it.
  • A grid is editable only when every column really is the table's own; a query with a subquery, a comment or a computed column used to save to the wrong place or cut values short. Generated columns cannot be edited or pasted into.
  • Edits, deletes and pastes of many rows go in batches - deleting thousands of picked rows no longer takes two round trips each.
  • Editor commands can be undone, Tab indents a selection, and Explain takes the statement at the cursor.
  • "Go to referenced row" follows a foreign key into another database and uses all its columns.

Large results. A page of rows also stops at 32 MB, so a table of large BLOBs no longer hangs the app or runs it out of memory; the rest loads as you scroll. The object list stays quick on schemas with thousands of objects.

Schema sync compares indexes, foreign keys, CHECK constraints, ON UPDATE and AUTO_INCREMENT, puts an added column where the source has it, and creates a child table after its parent. A table that differed only in those used to show as the same.

Table designer warns when MySQL will give a TIMESTAMP column an automatic default, keeps a column's CHECK and SRID, reads the primary key in its own order, and no longer writes NOT NULL DEFAULT NULL.

Import and export

  • Import reports warnings - a value cut to fit - not only errors.
  • A MariaDB dump opens on MySQL's client, and views are restored after the tables they read.
  • Leaving out DEFINER changes the definitions only and keeps every byte of the rows.
  • A failed dump is kept as .partial instead of looking complete; a CSV export says when a value is the NULL marker's own text.
  • An export to a folder named in another alphabet says why MySQL's mysqldump cannot write there.

Users

  • Changing the password of a MariaDB account that signs in more than one way (the usual Linux root) keeps its other ways.
  • A database-level grant names the database exactly: "_" and "%" are wildcards there.
  • Clone keeps a required client certificate.

Scripts and read-only mode

  • # and -- comments are read as the server reads them: Run at the cursor no longer sends the statements after it, and read-only mode sees a write hidden behind a comment.
  • A script whose SELECT reads session state (ROW_COUNT(), @variables, temporary tables) runs on one connection.
  • Passwords are not kept in the history.

Verify your download

These installers are not code-signed. Compare what you downloaded against the SHA-256 below:

1f0fb67d9a547425377da7005c5352f1a480c45a15a02bdef26776675a66d1c9  NOBS.SQL.Editor_1.4.0_x64-setup.exe
e59da865f0871e46ee334e8a69d6b5a9a922a02369c128016a3f38926638248b  NOBS.SQL.Editor_1.4.0_x64_en-US.msi

PowerShell: Get-FileHash .\<file> -Algorithm SHA256

See CODE_SIGNING.md for what this does and does not prove.

What's Changed

  • Rewrite the README introduction in plainer language by @monsama in #103

Full Changelog: v1.3.19...v1.4.0