HeidiSQL Versions Save

A lightweight client for managing MariaDB, MySQL, SQL Server, PostgreSQL, SQLite, Interbase and Firebird, written in Delphi

12.7

1 week ago

Get it from the download page

3rd party updates:

  • Issue #1946: update libmariadb.dll and plugin libraries to latest v3.3.8
  • Update regular expression library to v1.181 2023.11.22, supporting \K pattern to set the begin of a reported match.
  • Update InnoSetup compiler to v6.2.2
  • Update VirtualTrees component code to release v8.0.3 (major version update)
  • Issue #1888: Update plink executables to v0.81
  • Update madExcept exception handler to v5.1.4
  • Issue #1905: Update OpenSSL libraries used by libpq-15.dll to v3.1.5
  • Update SQLite libraries to v3.45.3 from 2024-04-15

New stuff:

  • Issue #1879: add drop down menu to "Apply filter" button, with an option to overwrite the current filter based on the different input text
  • Issue #1512: add basic support for indexes with descending column direction
  • Issue #1429: add "SQL INSERT IGNORE" output format to grid export dialog
  • Issue #178: add database and table filter boxes above tree view on table tools dialog
  • Issue #1917: Support additional UCA collations introduced in MariaDB 10.10.1.
  • Issue #1927: display column comments in completion proposal, give that third column more space to the left and italic style
  • Table editor: when user runs into the cryptic "constraint is incorrectly formed" message, append a more meaningful line from SHOW ENGINE INNODB STATUS.
  • Support naming result tabs per "-- name: xyz" comment. See https://www.heidisql.com/forum.php?t=10493
  • Reorder components in grid export dialog, and convert format radio buttons to combobox. Makes the dialog more wide than high, creating space for wider labels and more format options.
  • Issue #1930: Grid export: implement JSON Lines format.
  • Issue #139: Alternating row background colors in table columns list and most other main tabs, if activated by user.

Bugfixes and enhancements:

  • Enhance readability of focused text in result grid using dark styles. TreeOptions.PaintOptions.toGhostedIfUnfocused grays out text otherwise.
  • Fix crash in SynCompletionProposalChange, happening when scrolling very fast to the top of the list
  • Fix crash in f_() function with invalid format specifiers from some translation. Happened in Japanese recently.
  • Issue #1870: support VARCHAR columns with a length of 0, in temporary fake tables for exporting views
  • Detect Windows 11 in about dialog, and remove functions only required for the no longer supported Windows Store version
  • Fix activated SSH tunnel for a network type which does not support that, after changing the network type from an explicit SSH-tunnel-type to a TCP/IP version.
  • Search replace: ignore numbers in static row id column
  • Installer: add newly available translations for Hungarian and Bulgarian
  • Add item in Tools main menu for resetting panels to their default dimensions. Useful for quite a few people who move their app window between screens with different resolutions.
  • Static row id: always use the color of the session the result belongs to
  • Performance: call TimerHostUptimeTimer event every 20 seconds only, instead of each second
  • SQL export dialog: cut long file list down to 20 latest items
  • Issue #520: Fix crash in sort columns dialog when removing the last column, with a non-default theme
  • After reformatting SQL code, unify new lines to Windows line feeds, so the selection's end in SynMemo is correct
  • Fix retrieving MySQL events from the current database on older servers, work around MySQL bug 41907. See https://bugs.mysql.com/bug.php?id=41907#c360194
  • Make pressed state of favorites button more noticeable, by using the gray-scale icon in unpressed state
  • Fix emptied "SHOW WARNINGS" pool due to queried @max_error_count in warning dialog. See https://www.heidisql.com/forum.php?t=41753
  • Issue #1899: fix wrong column number on column selector above data grid
  • Issue #1906: provide a new preference option to turn on color icons on inactive tabs again
  • Issue #1910: Fix CURRENT_TIMESTAMP default text detection as an expression, not as an ordinary string literal, on MySQL 8.0.14+.
  • Issue #1887: restore old scroll offset in data grid, when refreshing result or paging to the next rows
  • Issue #1918: Remove leading timestamp from log message when copying to new query tab.
  • Host tab: use session name as tab caption, and show host name as mouse-over hint. See https://www.heidisql.com/forum.php?t=41399
  • Hopefully fix slow loading tabs.
  • Issue #1923: Fix completion proposal not showing columns of a table alias when table name contains the word "join".
  • Issue #355: Fix non-working scrolling with a horizontal mouse wheel in grids, by preferring TWMScroll.Pos over TScrollInfo.nTrackPos (always 0).
  • Add functions-mysql8.ini with some newer functions in it, and search for version specific ini file when connecting. See https://www.heidisql.com/forum.php?t=41892
  • Fix too small foreign columns dropdown, scale controls on TSetEditorLink DPI aware
  • Issue #1247: Fix invalid SQL code for dropping foreign key constraint in PostgreSQL mode.
  • Issue #1586: include "COLLATE xyz" clause when applying collation and user checked the "Convert data" option, so the columns do not get the default collation of the new charset
  • Issue #1934: fix empty column list in completion proposal when user input starts with a quote character
  • Issue #1933: Update list with known MySQL 8 keywords, taken from https://dev.mysql.com/doc/refman/8.0/en/keywords.html#keywords-in-current-series
  • Issue #1939: Fix empty CREATE TABLE code and "List index out of bounds" message in log, due to accessing TTableKey.Collations[x] without being initialized
  • Issue #321: Fix SQL code in TTableKey.SQLCode for PostgreSQL
  • Issue #1940: In TSecureShellCmd.Connect, include parallel happened errors in any success dialog. Also, log errors to the log panel when both pipes have content.
  • Issue #1942: Reset FClipboardHasNull marker before pasting text which was copied outside the application.
  • Issue #1943: Set DbTree.DefaultNodeHeight in FormShow rather than in FormCreate, to respect DPI settings.
  • Issue #1931: Support CITEXT columns in Postgres and categorize as text type, so these show up in foreign values pulldown editor of data grid.
  • Issue #1868: Reset sort order of data tab grid as well, when user clicks "Clear data tab filter".
  • Issue #1936: Fix EAbstractError when closing text editor
  • Issue #1947: don't change case of detected column names, in CSV parser

12.6

6 months ago

Get it from the download page

3rd party updates:

New stuff:

  • Issue #861: New static row id column in all result grids. Uses the session background color, and can be hidden. (see screenshot)
  • Issue #750: SQL formatting now with 2 new online formatters: (see screenshot)
  • Add context menu on data grid header with "Query exact row count" item, querying SELECT COUNT(*)... on the underlying table
  • Support main tabs in a single line, and support tab-scrolling per mouse wheel
  • Issue #940: Support removing shortcuts per button in preferences. (see screenshot)
  • Issue #1619: Use the same hotkey (Ctrl+S) for saving a table/trigger/... as for saving a query file.

Bugfixes and enhancements:

  • Issue #1863: Fixes compatibility to Wine v8.18 again, and probably to more versions
  • Grayscale icons on non-active tabs, for a clearer user interface (see screenshot)
  • Separate double-click and middle-click options for closing tabs (see screenshot)
  • Issue #1795: remove menu items and code for explain analyzer on https://mariadb.org, which is no longer available
  • Issue #1854: fixes incorrect table name used in grid updates when comment with valid query exists
  • Issue #279: Support serial columns in PosgreSQL, which is different from auto_increment on MySQL
  • Issue #872: fix crash when opening a table with columns defined as INVISIBLE, and ensure such columns are selected and visible in the data grid
  • Translation fixes: remove various unused strings, fix some wrong spelled strings, add some missing strings
  • Issue #1850: too short text in popup text editor, when field contains high UTF-8 characters like emojis
  • Add missing PMYSQL_LENGTHS type, and use this for the result of mysql_fetch_lengths(). Fixes an issue broken since 2009 (!)
  • Issue #1640: Fix crash in MouseUp event of query tab close button, by closing/freeing the tab and button through a timer event
  • Issue #752: Fix SQL export on MySQL 8, overwriting view helper tables caused "xyz is not view"
  • Keyboard shortcuts: allow the user to accept duplicate assignments per ignore button. (see screenshot)
  • Issue #1826: Fix ON UPDATE part of DEFAULT clause with no parentheses on MySQL 8, which are required only for the initial DEFAULT value.
  • Fixes numerous different crashes, found in uploaded crash reports. Thanks to all users reporting these:
    • Fix crash after following a foreign key value
    • Fix sporadic crash "Cannot make a visible window modal" in search/replace dialog
    • Fix crash in various places where we just try to get the current clipboard text
    • CSV scanner: fix crash when selected filename cannot be opened
    • Fix sporadic crashes in various calls to [TWinControl].SetFocus, with the new class helper .TrySetFocus
    • Fix crash in highlighter customizer, as long as no attribute is selected
    • Silence a popular crash in DBtreeFocusChanged, when trying to detect whether the user clicked into a different session
    • Fix EAccessViolation in TMainForm.DBtreeFocusChanged:124
    • Fix crash when trying to stop current query and the helper connection cannot connect for some reason.
    • Silence sporadic EAccessViolation in DBtreeBeforeCellPaint, when reading DbObj.Connection.Parameters
    • Fix EAccessViolation in TDBObject.GetImageIndex:6
    • Fix EAccessViolation in TMainForm.DBtreeGetText:12
    • Catch different EInOutError exception happening in rare cases of ForceDirectories()
    • Fix EAccessViolation in TMainForm.AnyGridGetText:5
    • Fix crash when user clicks Help button on maintenance dialog, in a non-MySQL session
    • Catch additional EReadError crash in RunQueryFile
    • Fix crash in printer dialog, when printer is somehow not available
    • Fix crash after reconnect, when query helpers functions are exapanded
    • MSSQL: Catch OLE exception when provider names cannot be listed
    • Fix crash in TMainForm.DBtreeGetText happening while connecting through SSH tunnel
    • Fix sporadic crash with focused Host tab while connecting to another session
    • Warn the user about potential data loss when loading a (csv) file with encoding set to "auto-detect".

Full Changelog: https://github.com/HeidiSQL/HeidiSQL/compare/12.5...12.6

12.5

1 year ago

Get it from the download page

3rd party updates:

New stuff:

  • Basic implementation of Sequal Suggest as a dialog, under Tools. For generating SQL queries through natural language. See https://sequal.dev/

Bugfixes and enhancements:

  • Issue #1800: wrap column default expression in parentheses on MySQL v8.0.13+ when altering a table
  • Issue #1800: attempt to distinguish text values from function expressions in a column's default value, for MySQL 8.0.13+ which seems to allow just all functions as default value.
  • Issue #1800: add missing CURDATE function definition to functions-mysql.ini
  • Do not cut trailing zeros in scientific values like 2.0e30 => 2.0e3. Closes #1793
  • Auto detect need to create HTML clipboard header, remove CreateHTMLHeader parameter from StreamToClipboard()
  • Refactor HTML clipboard code. See https://www.heidisql.com/forum.php?t=9893
  • Make HTML export format compatible to Google Chrome. See https://www.heidisql.com/forum.php?t=9893
  • Support ON UPDATE SET DEFAULT and the same for ON DELETE in PostgreSQL foreign keys. See https://www.heidisql.com/forum.php?t=40413
  • Issue #1771: add additional sleep time between SSH process checks, so it does not matter when WaitForSingleObject does not really wait (on Wine)
  • Issue #1771: prefer a larger SSH process check interval for larger timeouts (timeout:4s => check interval:400ms), and log process exit code each interval.
  • Auto-set the first SSH executable from the dropdown when user activates SSH tunnel checkbox. See https://www.heidisql.com/forum.php?t=40399
  • Support canceling SQL export before a table's data has been completed. Closes #1516
  • Ensure max INSERT setting is an Int64, so a huge value does not wrap into a negative value. See https://www.heidisql.com/forum.php?t=40393

12.4

1 year ago

Get it from the download page

3rd party updates:

New stuff:

  • Issue #921: add SSH tunnel support for SQL Server in TCP/IP mode. "SSH tunnel" tab is not hidden any longer for unsupported network types, only the checkbox is disabled then.
  • Issue #1721: Let the user disable a session's SSH tunnel configuration, similar to the SSL checkbox

Bugfixes and enhancements:

  • Turn crash into error dialog, on search and replace dialog, when regular expression is invalid
  • Issue #1226: switch back to TSynHotKey again, after using THotKey in shortcut customizer since b4926f3f579c9d82981dea59a0785dd31c040b01 . Fixes non assignable Enter and Del hotkeys, probably more. This time we don't touch the original TSynHotKey for custom fixes, but through the new TExtSynHotKey.
  • Restore previous scroll position after saving routine, trigger, event or view. See https://www.heidisql.com/forum.php?t=40291
  • Reduce crash probability in TSecureShellCmd.Connect when user disconnects from session before tunnel is reestablished.
  • Strip comments from current query before trying to detect a table alias. Closes #1753
  • Widen import button on very first tab of session manager, so translations fit to it. Closes #1752
  • Find a better alternative to d262a6acc920083e0728c324a968f83f11f263b7 : set descending column order on first header click when shift key is pressed . See https://www.heidisql.com/forum.php?t=40243
  • Refactor internal structures for grid/table sorting, prefer TObjectList over Array
  • Issue #1717: block too fast and overlapping calls of refresh action, to reduce crash probability
  • Fix crash due to reset AppSettings.SessionPath through LogSQL()
  • Attempt to fix a crash, happening in some cases when user focuses a tree node in a different connection
  • Disable ASLR and the same flag for 64 bit mode through base configuration.
  • Issue #1568 and issue #1737: exit OnPaintTransient event handler on interlocked calls
  • Hide SSL tab when no session is selected
  • Prefer previously used filename in save-as-snippet dialog. Closes #1747
  • Issue #1730: fix wrong vertical position of linebreaks dropdown
  • Issue #1730: apply font to mother query grid as well, in ApplyFontToGrids
  • Degrade category of mostly log messages from grid editors to debug.
  • Issue #1744: load stored tab file contents always with UTF-8 encoding, to prevent a wrong encoding per auto detection.
  • Issue #1721: fix now wrong tab order with the new "SSH tunnel" checkbox
  • TConnectionParameters.GetImageIndex: prefer more specific icon for MySQL on RDS sessions
  • Update current year in license file
  • Issue #1730: add preference option for disabling incremental search through typing in grids
  • Include some System.Generics.* units without using project's unit scopes or aliases
  • Issue #1568: fix ineffective temporary disabling of OnChange handler
  • Issue #1568: content in SQL editor is modified in SynMemoQueryKeyPress. Attempt to prevent some endless loop through OnChange event.
  • Remove unit scopes from project settings, prefer fully qualified unit names in uses clauses. Enhance readability and compiler performance.
  • Prefer extracted-comments style over translator-comments, which are not displayed on Transifex for some reason. See https://www.gnu.org/software/gettext/manual/html_node/PO-Files.html#The-Format-of-PO-Files
  • Create project files for Delphi 11.2, with disabled HighEntropyVa setting so the 64bit builds will run without crash.
  • Add comment to joined short+long hint in translation. See https://github.com/HeidiSQL/HeidiSQL/commit/8fc6dba6e3047afeaa93d817cf7424e4acd278b5#r93385116
  • Use red background for SQL errors in log panel too. See https://www.heidisql.com/forum.php?t=40110
  • Issue #1722: rephrase text hint on filter input so it matches an existing translation string
  • Automagic modifications to form files, done through updates of IDE and some components. Especially removes no longer published properties OldCreateOrder and PixelsPerInch.
  • Issue #1722: add missing translation strings to master file
  • Fix wrong tab order of recent filters pulldown on data grid filter panel
  • Enhance user query error handling. See https://www.heidisql.com/forum.php?t=40085
    • try to find error position in 1M of SQL instead of only 1KB
    • do not reset cursor if position was not found
    • paint red background on line with error, just until user presses any key
  • Issue #1724: silence another exception in MS SQL mode, when checking for IsNull on a field. Seems to be just a different version of the same bug described in #496
  • Issue #1725: add history menu pulldown to global filter edit box
  • Add missing translation string for new header-click option. See https://github.com/HeidiSQL/HeidiSQL/commit/7bea342b9f1ca53aac2012387bdc6bb41892ad17#r92151280
  • Add option to turn off warning dialog for active but unused SSL settings. See https://www.heidisql.com/forum.php?t=40080

Modifications for installer and updater:

  • Issue #1735: Experimental support for non administrative install mode, with the default folder C:\Users\xyz\AppData\Local\Programs\HeidiSQL\
  • Issue #811: Make installation of example snippets optional, and display the used path.
  • Increase lzma2 compression from max to ultra64. Take up more memory for creating the installer and for installing, but decreases installers file size from 46M to 39M.
  • Do not auto-create "c:\Users\Anse\Documents\HeidiSQL", as we only use it for snippets which can also have a custom path. Closes #1751
  • Updater: quote name of task to run, making it safe to use white spaces
  • Use Release configuration to decrease the updaters file size
  • Issue #1616: Close Heidi processes through updater even if the path is different than the current app path, which is the case when running Heidi from a symbolic link folder.
  • Refactor build updater once again:
    • convert to console application without window, so the user sees all status messages in the order of appearance
    • include SysUtils unit, which increases file size to ~2MB, but enhances maintainability
    • restrict compilation and resource inclusion to 64bit mode - the build updater is disabled in 32bit mode anyway
  • Issue #418: restart via task scheduler after build update, decreasing privileges to the normal user instead of administrator
  • Issue #1733: Sign uninstaller within InnoSetup script. This also signs the installer from InnoSetup now, while removing the sign call from the build process.
  • Issue #1733: sign yet unsigned 3rd party libraries with my own Authenticate certificate

12.3

1 year ago

Get it from the download page

3rd party updates:

  • Update plink binaries to latest v0.78. Closes #1430

New stuff:

  • Make clicks on grid column headers configurable, so the user may disable it, preventing him from accidental sortings on large tables. See https://www.heidisql.com/forum.php?t=40026
  • Issue #1705: Add new network type "MySQL on RDS", to support its different query for killing a process. New icon provided by @Bens-ct.

Bugfixes and enhancements:

  • Issue #1616: force update check to overwrite old HeidiSQL_update.exe in temp directory, once through different file size, and by logic when old one is older than 30 days. Fixes still used old updater with bugs.
  • SQL export: Calculate a reasonable LIMIT clause when "Get full table status" session setting is disabled, causing AvgRowLen<=0. See https://www.heidisql.com/forum.php?t=40058
  • Fix too narrow column widths restored with high DPI setting, due to Delphi's Round() function using the nearest even number. Use the better suited "kaufmännisch runden" approach.
  • Query helpers tree: sync logic behind "Insert at cursor" with what doubleclick does. Enables that menu item for table columns, keywords, functions and snippets. See https://www.heidisql.com/forum.php?t=40022
  • Quote BIT values again, in EscapeString version with data type. Closes #1709
  • Use rds_kill_query procedure on RDS to kill a running query. Closes #1705
  • Revert background color of selected text in Material style to its original, again causing unreadable link text on dialogs described in issue #993. Readability of selected text seems more important to me. See https://www.heidisql.com/forum.php?t=40003
  • Include application version and path of selected session in the session manager's window caption

12.2

1 year ago

Get it from the download page

3rd party updates:

  • Update SQLite libraries to v3.39.4 from 2022-09-29

New stuff:

  • Issue #1536: auto-resize height of data grid filter while user types text in it
  • Issue #1691: make timer interval for auto completion proposal configurable, while keeping 500ms as a default value.
  • Allow integers and floats to be entered in hexadecimal format in grids. Basically means they're not wrapped in quotes now. See https://www.heidisql.com/forum.php?t=39864
  • After restoring query tabs, warn user about tabs which were loading slow
  • Add preference option for adding timestamp to log messages. Helpful for debugging performance issues.
  • Issue #136: use VerySimpleXML v3-beta from https://github.com/Dennis1000/verysimplexml to reformat XML in grid cells. Also, auto-disable slow wordwrap in editor if text is > 1M large
  • Issue #1659: create dialog for customizing highlighter colors and style, for use on grid text editor
  • Highlight occurrences of selected text in grid text editor, same as in query editor
  • Issue #1669: turn customize-highlighter button into dropdown button with additional items "Format code once" and "Always format code". Usable for SQL, JSON and XML.

Bugfixes and enhancements:

  • CSV scanner: lowercase name of table and columns, and unify non-word characters to underscore
  • Fix crash when scanning CSV file with more values in data than in header line. Closes #1698
  • Fix trailing linebreak counted to last column name in first CSV line
  • Fix wrong finish message in log result, when doing something different than an export. See https://www.heidisql.com/forum.php?t=39913
  • Issue #1700: exactify positions of line breaks in auto-filter on data grid, to prevent sporadically too long lines
  • Issue #1616; Fix broken updater code and binaries, by fixing wrong parameter definition of WindowProc and wrong type cast in a SendMessage() call
  • Issue #1616: revert previous modifications on updater binaries, which now do nothing and don't trigger the WM_SHOWWINDOW message
  • Issue #1695: attempt to fix a check for a named session before storing the currently used database name
  • Prefer CopyFile + DeleteFile over MoveFile, in a second place, where the old binary is backup'd. See issue #1616
  • Add log message after finished export, to make it more noticeable the user has control again. See https://www.heidisql.com/forum.php?t=39913
  • SSH tunnel: process error pipe contents only if std pipe is empty. See https://www.heidisql.com/forum.php?t=39851
  • Allow hex values to have an odd number of digits. See https://www.heidisql.com/forum.php?t=39864
  • Issue #1673, #1351 and #1658: use a general approach in TDBQuery.HasFullData for all server types, where we again use Delphi's Length() against a number range of 128..256.
  • Fix text value in popup editor cut to 256 chars, for all modes other than MySQL. Closes #1673
  • Issue #1652: don't add collation clause to a modified or new JSON column
  • Update readme file: add Interbase/Firebird, require Delphi 11.1, code formatting
  • Purge cached columns, indexes etc. and reinitialize table editor, when user presses refresh button. Closes #1628
  • Issue #1669: turn off always-format setting by default
  • Issue #1670: fix text field editing with more than 256 chars on MS SQL
  • Add missing ini entries for CURRENT_TIMESTAMP function. Closes #1666
  • Use empty default host/ip for new SQLite sessions, to avoid running into some out-of-memory issue. Closes #1602
  • Fix previous approach in TDBQuery.HasFullData and StrHasNumChars, which used CharNextW() and stopped at null bytes within binary strings. Again use Length() instead, but let it be longer than GRIDMAXDATA. Closes #1658
  • Issue #1659: remove broken sample text box, activate translation on dialog
  • Issue #1659: fix exception on closing customize dialog, use empty string when converting clNone to and from web color, instead of #ffffff
  • Issue #1656: attempt to give Wine a hint for the right font size, when highlighting selection occurrences
  • Use NULL in new row for column with timestamp expression, to fix a following UPDATE query using an empty string in its WHERE clause. Closes #1645
  • Leave away NULL clause for new column which allows NULLs. Closes #1642

12.1

1 year ago

Get it from the download page

3rd party updates:

  • Update SQLite libraries to v3.39.0, released on 2022-06-25

New stuff:

  • Create context menu item "Empty recent filters" on database and table filter above tree view. See https://www.heidisql.com/forum.php?t=39447
  • Add support for MariaDB's new UUID column type. Closes #1545
  • Add basic support for listing and showing views in SQLite mode. Closes #1196
  • Support mouse wheel zoom in grid text editor
  • Issue #156: menu item "follow foreign key" in data grid (@dungsaga)
  • Let user set line break style for saved query tab files. Closes #892
  • Issue #892: support custom line break style when saving log panel contents or CREATE code tabs to file, using the existing "LineBreakStyle" option introduced in 59159c7afd8ea875b604d639bded105984b5e2c8.
  • Support renaming columns in SQLite, and generate separate ALTER TABLE queries for each change. Closes #1256
  • Support COLLATE clause in SQLite when creating tables
  • Upgrade used compiler to Delphi 11.1

Bugfixes and enhancements:

  • Enable 64 bit support for files > 4gb in zipped SQL export
  • Support comments on table indexes via table designer. Closes issue #128
  • Don't add a "WHERE -- foo" when the filter contains comments only. Closes issue #1537
  • Strip comments from procedure parameters before parsing. Closes issue #1477
  • Restore maximized state of text editor in OnCreate, not OnShow. See https://www.heidisql.com/forum.php?t=39476
  • Don't reset a main control's window procedure if there is no main control. Closes issue #1349
  • SSH tunnel: use the shell executable filename in all dialog captions
  • Issue #287: v5.1 servers report utf8mb4 from mysql_character_set_name, although it's latin1. Trust the returned charset only on v5.5+ servers, and reset it on older servers.
  • MoveFile() does not work when target directory is a symlink, so we prefer CopyFile + DeleteFile. Closes issue #1616
  • Auto-fit result columns when compressing export file has finished. Closes issue #1617
  • TSHFileOpStruct.pFrom needs a trailing nul char, see https://stackoverflow.com/a/1594859/4110077 and/or https://docs.microsoft.com/de-de/windows/win32/api/shellapi/ns-shellapi-shfileopstructa?redirectedfrom=MSDN#members
  • When deleting tab backup file, delete it to recycle bin, for cases where the user did that by accident. Same for snippet file and overwritten export/zip file. See https://www.heidisql.com/forum.php?t=39355
  • Set title on completion proposal form, to keep the form resizable with only 1 NbLinesInWindow. See https://www.heidisql.com/forum.php?t=39366
  • Issue #1613: fix missing detection of spatial keys
  • mysql_character_set_name() from libmysql.dll reports utf8* if in fact it's a latin* charset. Force utf8* charset in that case. See https://www.heidisql.com/forum.php?t=39278
  • Don't reapply shortcuts to base editor, but to all others. Closes issue #1600
  • Fix crash after copying table to other database, when target database is expanded in DBtree and current session has a background color. Closes issue #1597
  • Optimization: set up a single TSynMemo instance instead of all, e.g. when creating a new query tab
  • Issue #1351: optimize StrHasNumChars
  • Make counting characters in TDBQuery.HasFullData more precise for diacritical characters. Fixes EnsureFullRow not doing its work when a cell contains some emoji. Reported in the forum: https://www.heidisql.com/forum.php?t=39239
  • Leave away delimiter at the end of a query batch, in one-go mode. Closes issue #1583
  • Issue #1577: make apphelpers.SelectNode more intelligent, returning true/false to indicate whether it successful went through OnFocusChanging event
  • Do not auto-close search/replace dialog if no occurrences were found. Closes issue #896
  • Enable cancel edit button after search/replace. Closes issue #1579
  • Issue #1577: break loop in search/replace on grid if advancing focus on next node is not allowed through OnFocusChanging event
  • Convert hardcoded MySQL error codes to named constants, taken from include/mysql/server/mysqld_error.h
  • Refactor: move structures for specific network types out of dbstructures, into their own dbstructures.xxx.pas, and include const.inc in project sources
  • Set character set and collation of MySQL/MariaDB connections only if current one is not UTF8/16/32. Closes issue #287
  • Issue #1256: restrict altering existing SQLite tables, apart from a few things
  • Refactor: create and use self explanatory TDBObjectEditor.ObjectExists method
  • Table editor: force repaint of column list after click on "delete column", which otherwise still displays the deleted columns until the user hovers over it
  • Issue #945: give id column in table editor slightly more width to let the text fit in
  • Issue #1256: create spRenameColumn template and prefer that in SQLite and Postgres
  • Issue #1521: get back partition clause into table editor by fixing the detection for CREATE code without a closing comment at the end
  • Prevent the last column from being dragged out of any VirtualTree header. Closes issue #1021
  • Issue #993: white is now used as background for selected text, which is light blue and unreadable. Set Material/clHighlight to hex bebebe instead.
  • Set system color clHighlight in Material theme to bright white (was rgb 32464a), to enhance readability of link colors in dialog footers. Closes issue #993.
  • Limit icons on column in table editor to show only one per key type. Closes issue #945
  • Support custom line breaks in ConfirmTabClear
  • Set hint on data grid top label, staying readable when screen width is too small to show the label. Closes issue #836
  • Ask user whether modified text shall be stored when pressing cancel button. Closes issue #817
  • Set focus on editor when creating new query tab, closing a previously grid editor. Closes issue #725
  • Auto-refreshing grid or list only if main form is active. Closes issue #669
  • Update cached object reference with new row count after inserting row, which may enable "Data" option in table copy dialog. Closes issue #666
  • Disable save and discard buttons of routine editor temporarily while saving changes. Closes issue #616
  • Display multi-line column headers in query result grid. Closes issue #1566
  • Replace redundant ExtractBaseFileName() with TPath.GetFileNameWithoutExtension()

Full Changelog: https://github.com/HeidiSQL/HeidiSQL/compare/12.0...12.1

12.0

2 years ago

Get it from the download page

3rd party updates:

  • Update SQLite libraries to v3.38.0
  • Update VirtualTrees component source to v7.6.1
  • Update OpenSSL libraries to v1.1.1l (used in PostgreSQL mode)
  • Update libmariadb.dll and plugins to current stable versions

New stuff:

  • Experimental support for high DPI in default Windows theme/style
  • Experimental support for Interbase and Firebird connections (issue #1169)
  • Support for Windows 10's built-in SSH client for tunnels, as an alternative to plink (issue #362)
  • SQL export: add new menu item "Copy mysqldump command line" in "Options"
  • Known function names per server type: function names are now loaded from separated *.ini files, e.g. functions-mariadb.ini
  • Create editor commands for moving line up/down (Alt+Up, Alt+Down, "Edit" menu)
  • Create "copy with tabs to spaces" action, and place it in Edit menu. (#1285)
  • New context menu items "Close query tabs to the right", and "Close all query tabs" (issue #710)
  • New item in context menu of headers in grids and lists, for toggling visibility of all columns per one click (#1360)
  • New grid export format: SQL UPDATEs (issue #125)
  • New grid export format: Jira Textile (issue #1013)
  • Empty-tables-confirmation supports disabling foreign key checks (issue #1491)
  • Support renaming SQLite tables in database tab (#1427)
  • Editor highlights all occurrences of selected word, similar to Notepad++ (issue #670)

Bugfixes and enhancements:

  • Loading an sql file does not activate its tab, e.g. when loading multiple files. Fix crash happening when active tab is not a query tab in such cases.
  • Remove closing PHP tag from export as PHP array
  • Performance enhancement with many opened query tabs
  • Fix some potential file related exceptions in text file import
  • Support filenames with accented chars in text file import dialog (issue #1387)
  • New query tab uses the same memo height as the current tab
  • Session background color now used on query result tabs, and in query gutter (issue #932)
  • Fix various style/theme related crashes, for instance when closing the grid export dialog
  • Reset timezone in SQL exports to zero offset, to be independent from local date/times in TIMESTAMP columns
  • Fix missing SET TIME_ZONE.. on export target server (issue #1457)
  • Single quotes and backslashes in PostgreSQL connection string values are properly escaped now (issue #1417)
  • Prefer SUBSTRING() over SUBSTR() in Postgres mode, to restore Redshift compatibility. (issue #1259)
  • Fix "Table x not found in tree" after creating a table with upper case letters on Windows servers. See https://www.heidisql.com/forum.php?t=38150
  • Support UINT columns in SQLite mode (issue #1453)
  • Update SynEdit's list with known MySQL keywords, taken from https://dev.mysql.com/doc/refman/8.0/en/keywords.html#keywords-in-current-series (issue #1437)
  • Run current query: Prefer query left to the current one, if current one contains no text (issue #603)
  • SQL export: don't generate ALTER TABLE..DISABLE/ENABLE KEYS for InnoDB tables
  • Activate auto-suggest option "Find matches in middle of entered text" by default.
  • Don't clear variable from --description cli parameter. (#1295)
  • Quote column names for quick filter, when column name matches an SQL function (#1398)
  • Session manager: Auto-expand session folder when user filter matches a child session
  • Fixes for handling virtual columns (#1210)
  • Add option to turn off tab close by doubleclick/middleclick (#1151)
  • Activate CLIENT_PLUGIN_AUTH_LENENC_CLIENT_DATA option for MySQL/MariaDB, fixing some SSL issues on MySQL 8 (issue #1539)
  • NUL characters in grid values are replaced with a space when editing or copying. Editor gets read-only mode then. (issue #202)
  • Binary values in foreign key pulldown now works with hex code, instead of binary garbage (issue #1540)
  • Enhanced foreground/background colors for matching brace in dark themes. (issue #887)
  • Fix EAbort error when copying text from SynMemo without highlighter

11.3

2 years ago

Get it from the download page

Still need 32bit support?

  • I am planning to drop the 32bit releases in a future release, for keeping the installer package small, and to decrease deployment efforts. Tell me what you think about it.

3rd party updates:

New stuff:

  • Log DDL and/or DML queries per session to custom file path (issue #397)
  • Grid text editor:
    • syntax highlighting for 64 code languages, including JSON and XML (issue #136)
    • gutter with line numbers and marks for edited lines
    • now using search/replace dialog with regular expression support
  • Enable query timeout setting for MySQL and MariaDB (issue #1306)
  • Show check constraints on MySQL, MSSQL and PostgreSQL (issue #1298)
  • New menu Query > "Editor commands", revealing available quick actions for SQL editors
  • Create "Editor commands" menu in "Query" main menu, and populate it with all available editor commands
  • Add new preference option for displaying hexadecimal content in lowercase

Bugfixes and enhancements:

  • Query tab resizes after minimize (issue #1113)
  • Foreign key add issue (issue #1320)
  • Cannot update/insert postgres jsonb column from data editor (issue #1321)
  • MariaDB 10.5: REPLICATION CLIENT privilege was renamed to BINLOG MONITOR (issue #1302)
  • Quoted column default value expression on Percona (issue #1282)
  • Cannot delete row in MSSQL (issue #1294)
  • Always read portable settings file and imported settings file in UTF8 mode, instead of auto-detecting a potentially wrong encoding. Fixes broken characters loaded from a portable file larger than the examined 16 (?) KB
  • Database search feature: prefer a normal log line for tables with no matching data type, so the "Found rows" column has a number, to fix wrong sorting
  • function COALESCE is identified as plain text, not function (issue #1342)
  • Non-synchronized checkbox state on privileges in user manager tree (issue #1352)
  • Auto-scroll grid when tabbing through cells
  • Run SQL button disabled after reconnect (issue #1319)
  • Don't repeat running prompt to reload a file after multiple external changes (issue #821)
  • Fix identifier quoting when creating a foreign key in a database with dots in its name (issue #1364)
  • Increase maximum pixel width of status bar panels slightly, so these better fit with a larger font size. (issue #1356)
  • Get rid of quotes around hex values and integers in quick filters
  • Fix crash happening when using un/comment action. (issue #1359)
  • include column names in "copy as" submenu export actions by default (issue #1357)
  • Restore/keep cursor position in filter editor after refresh
  • Detect pressed shift key before prompting for filter value. (issue #588)
  • Fix wrong query duration in log panel after multiple queries in "one-go" mode
  • Unhide public schema on Redshift
  • Table tools: auto-fit column widths with each result grid update, and show execution time in main status bar
  • Enable menu items for EXPLAIN <query> on PostgreSQL and SQLite

11.2

3 years ago

Grab it from the download page

3rd party updates:

New features and enhancements in this version:

  • New CSV layout detection for "Import text file" dialog (select <New table>)
  • Support for table level check constraints on MariaDB
  • New "Rename tab" context menu for query tabs
  • New "CREATE code" tab in view editor
  • Tab restore feature:
    • Gracefully re-create folder if query tab file and its folder was deleted from outside
    • restore scroll position
    • restore active query tab
  • Grid export:
    • Convert "Copy rows" context menu item to a submenu, and provide all export formats, with icons
    • Support custom hotkeys for each of these grid export actions
  • SQL export:
    • Prevent "Variable 'sql_notes' can't be set to the value of 'NULL'", via IFNULL() wrap
    • Speed up data exports of large MS SQL tables, by introducing ORDER BY .. OFFSET .. FETCH clauses in SELECT's
    • Limit rows per exported INSERT to 1000 for MSSQL.
    • Auto-create directory path of output file
  • Support shortcut Ctrl+F for focus on filter edit on session manager
  • Data grid: Prefer SUBSTR() over LEFT() function, unsupported in old PostgreSQL versions
  • Support regproc and jsonb column types on PostgreSQL
  • Support binary values in "More values" quick filter menu
  • Restore minimized main window when user attempts to start a second HeidiSQL process in single-instance mode
  • Apply data type colors to column names in completion proposal
  • Widen status bar panels for big screens
  • Shortcut settings: Prompt user for overwriting an existing shortcut

Bugfixes

  • Fix various crash reports uploaded by users via exception dialog
  • Accept any whitespace after double-minus comment in MySQL/MariaDB mode
  • Add UTF-8 BOM in Excel output only in file-mode, not in copy-mode.
  • Fix grid search/replace with scope=selection
  • Enable MYSQL_OPT_LOCAL_INFILE, seems still required on some systems for importing local CSV files
  • Fix invalid enabled state of "Explain current query" action
  • Re-add CURRENT_TIMESTAMP function, removed accidentally in last update
  • Fix cleared highlighter's TableNames list in irrelevant events
  • Fix empty library drop-down after changing network type for the first selected session.
  • Fix wrongly parsed ON UPDATE clause of columns when information_schema is hidden by session setting
  • Enable cancel button after setting grid cell to NULL

Complete change list: https://github.com/HeidiSQL/HeidiSQL/milestone/6?closed=1