Releases: HeidiSQL/HeidiSQL
12.12 Windows
Get it from the download page
The v12.12 release now abandons the 32 bit portable releases and nightly builds.
Back in Jan 2019, for v10.0, I created the first 64 bit release with the support of the Delphi 10.3 at that time. Since that release I provided both 32 and 64 bit releases for more than 6 years now. Due to the decreasing availability of 32 bit drivers and libraries, and with a user base of ~0.5% it makes sense to safe the effort for these. Note the previous releases with 32 bit variants are still available on the download page.
Also notable: heidisql.com has been moved to Manitu, an excellent hosting provider in Germany. Update checks, SQL formatting and statistic calls should benefit from the enhanced speed.
New stuff:
- Issue #2254: Support for trigger editing on SQLite
3rd party updates:
- Upgrade compiler to Delphi 12.3.
- Update MariaDB Connector/C to v3.4.7
- Add MySQL Connector libmysql v9.0.4
- Update SQLite libraries to v3.50.4
- Update SQLite multiple cipher libraries to v2.2.4.
- Update PostgreSQL libpq/17 to v17.0.6
- Update PostgreSQL libpq/15 to v15.0.14
- Remove PostgreSQL libpq/10 and 12, depending on the outdated and insecure libssl v1.1.1w
- Update Virtual-TreeView component to v8.2 from Sep 5 2025
Bugfixes and enhancements:
- Issue #2161: fix reading and writing user limitations in newer MySQL versions
- Issue #2126: rephrase SQL query for retrieving the oid of citext data type, to prevent errors in the server logs
- Issue #2257: fix height of grid column header
- Issue #2122: support table comment syntax when creating new PostgreSQL tables
- Issue #41: use N(ational) prefix on MS SQL strings on all quoted strings, regardless of their exact data type, to support Unicode in meta queries as well
- Issue #2167: remove fallback to insecure http calls when https failed
- Issue #2250: use N(ational) prefix in MS SQL for any text value going through the second version of EscapeString(), supporting Unicode now when importing a file into a table.
- Fix unsaved highlighter selection of default "General"
- Fix memory leak
- Issue #2249: call FixVT() in FormCreate consequently, so the trees do not change their row height after the second use. Also increase TextMargin and reduce Margin.
- Issue #2243: keep UserKnownHostsFile enabled in ssh.exe mode, so the message saying "permanently added xyz to the list of known hosts" is telling the truth now
- Do not require a "Content-Length" response header in THttpDownload. Responses mostly come compressed with "Transfer-Encoding: chunked" and then need hacks to get a Content-Length header. See https://www.heidisql.com/forum.php?t=44407
- Issue #1313: support MariaDB's COMPRESSED attribute for columns in table editor
- Issue #2243: suppress prompt to save a yet unknown host key in ssh.exe mode, by disabling StrictHostKeyChecking and UserKnownHostsFile . I have no clue to where ssh.exe sends that message, it's neither in stdOut nor in stdErr.
- Issue #2243: fix input being ignored by plink by adding a linefeed after y/n
- Issue #2243: add -legacy-stdio-prompts argument only to plink v0.82 or newer, not on older versions
- Issue #2233: fix detection of column length in SQLite, when the column type contains a space before parenthesis
- Issue #2212: add type prefix to export file name, when exporting one file per object, to fix overwriting same filename for different object types
- Issue #2218: don't disable completion proposal when cursor is right besides a string or comment
- Issue #2205: Remove subpart from column indexes when user changed its data type to non-text
- Issue #2193: expect some more characters to indicate a boundary for an identifier: ! < >
- Table data generator: use only space, new line and letters in text columns, and limit to 1024 characters
- Issue #176: move foreign key column value behind the text value, in the grid foreign key drop-down, so a user may select an item by typing letters
- Leave space for column id in grid column headers. See https://www.heidisql.com/forum.php?t=44161
- Issue #2266: Invisible virtual column syntax is generated wrong
12.11.1.167 Linux
Get it from the download page
Full changelog: https://github.com/HeidiSQL/HeidiSQL/commits/lazarus/
Latest notable changes:
- Most of the updates done on the Windows version, plus:
- Issue #2197: Can't set logging due to file not open error
- Issue #2182: mariadb cannot add users
- Issue #2177: Sort icons in column headers of data and query grid
- Issue #2165: Support libperconaserverclient for MySQL
- Issue #2189: wrong digit separator localized version
12.11
Get it from the download page
3rd party updates:
- Update plink executables to v0.83. See https://www.chiark.greenend.org.uk/~sgtatham/putty/
- Update MariaDB Connector/C to v3.4.5. See https://mariadb.com/kb/en/mariadb-connector-c-3-4-5-release-notes/
- Update SQLite libraries to v3.50.1. See https://www.sqlite.org/
- Update SQLite multiple cipher libraries to v2.1.3. See https://github.com/utelle/SQLite3MultipleCiphers/releases/
New stuff:
- Issue #604: add context menu item "Select top 1000 rows"
- Issue #2175: if asShowRowId option is enabled, show also the index of columns in their header, through the OnAdvancedHeaderDraw/ownerdraw event
- Issue #2168: select rows from table to export by its primary key columns, so PostgreSQL does not apply a random sorting
- Issue #2155: paint session background and icon in session drop-down of SQL export dialog
- Issue #2107: add "invert check" menu item on table tools tree
- Issue #2068: support MariaDB's new VECTOR index in table designer, without M and DISTANCE settings yet
- Issue #2068: support MariaDB's new VECTOR data type in table designer, categorize as binary
- Issue #2083: add menu item "Copy all lines" for copying visible and initialized nodes from any VirtualTree instance as CSV data
- Issue #1975: add "keep asking" checkbox to reformat dialog
- Issue #646: forget setting for "Favorite objects only" on each connection start
- Issue #2064: support UTF-8 BOM encoding when loading and saving editor files
Bugfixes and enhancements:
- Issue #1253: fix index creation on PostgreSQL tables, use separate CREATE INDEX queries
- Issue #2187: Fixed EAccessViolation when closing editor while using non-default theme
- Create helper table with the servers' default engine when exporting a view. See https://www.heidisql.com/forum.php?t=44125
- Issue #2186: fix wrong number of rows shown in grid export dialog when post filter is active
- Issue #2118: activate legacy-stdio-prompts mode in plink SSH tunnel, to fix non prompted passphrase since plink 0.82
- Issue #604: sync number of rows to query with the per-page data grid setting
- Issue #604: support multiple tables and views selected on database tab, in new "Select top 1000 rows" feature
- Issue #2172: fix wrong comment
- Issue #2172: prompt for password again, when connection has timeout or broke
- Issue #2159: fix memory leak
- Issue #2159: SQLite: export separated table indexes, and export views and triggers
- Issue #2168: turn off synchronize_seqscans variable in PostgreSQL mode, to be sure SELECT's show a stable row sorting. See https://www.postgresql.org/docs/8.3/runtime-config-compatible.html#GUC-SYNCHRONIZE-SEQSCANS
- Issue #1853: try to fix column definition changes on MS SQL wrt collation quoting and default value
- Issue #2155: high DPI fix for painting icons in SQL export target drop-down
- Issue #2156: unescape generated column expression when loading from IS.COLUMNS
- Keep retrieving exact row count on data tab header after activated via context menu, until another table has focus
- Display number or rows in data tab header for views. See https://www.heidisql.com/forum.php?t=44057
- Issue #214: when refreshing, ask user if he wants to discard modifications in table/view/routine/... editors
- Prefer Boolean over Bool type in owned code
- Issue #2139: fix missing AND's in REQUIRE clause, and move REQUIRE clause from GRANT to ALTER USER query, as MySQL does not support that in GRANT since v8.x
- Issue #2133: revert broken characters and encoding of apphelpers unit
- implementation of Unicode logic for password encryption
- Issue #2132: fix crash when saving an sql file previously loaded with auto-detected encoding
- Issue #2123: prevent crash in libpq when disconnecting an already disconnected connection
- Issue #2128: fix wrong encoding of connection string for PQconnectdb()
- Issue #2123: fix reconnect mechanism in TPGConnection.Ping()
- Issue #2119: optimize calculation of status bar panel widths
- Issue #1986: do not set CLIENT_SSL flag with libmariadb, which seems to cause a "bad handshake" in mysql_real_connect()
- Issue #2103: fix latin1 charset used with libmysql v8.x which reports "utf8mb4" by mysql_character_set_name()
- Issue #2101: attempt to reactivate progress bar in status bar when running through Wine, now with a safety check for IsWindow()
- Update default functions-mysql.ini with predefined line breaks and much more help content
- Update functions-mysql8.ini with predefined line breaks and much more help content
- Enable padding in multiline tooltips with a derived THintWindow class
- Reduce web page openings to once after successful nightly update
- Wrap long lines in data type hints. See https://www.heidisql.com/forum.php?t=43881
- Simplify and optimize functions generator for MariaDB, and update functions-mariadb.ini with predefined line breaks
- Issue #2095: fix wrong/no control characters used when changing format to Excel csv via file-save dialog
- Issue #2083: use empty field delimiter and tab separator for new copy-lines feature
- Issue #2085: tell TStringStream.Create not to free its TEncoding object after usage, as we use application-lifetime-available encoding instances
- Issue #2084: show numeric values in variables tab locally formatted in a tooltip
- Show type of exception happening through AppSettings.ExportSettings
- Issue #835: move prompt for overwriting output file from save-dialog to later when exporting is started, catching cases where the previous filename is used
- Issue #2079: work with the "default" set of SQLite encryption parameters, not the transient ones
- Prevent connection activity through hovering table token while user query is running. Similar to issue #278
12.10.1.133 Linux
First Linux version as a release with a tag.
Get it from the download page
Full changelog: https://github.com/HeidiSQL/HeidiSQL/commits/lazarus/
Latest notable changes:
- SSH tunnel support now works, using external
sshcommand, like in the Windows version - Translation support for 35 languages, through .mo files. Thanks to all the translators on Transifex!
- Icons on status bar
- Enable bracket highlighting in SQL editors
- Grid cell editors working (with quite a few crashes)
- Enabled automatic tab restore
- Table editor and the others (view, routine, trigger, event) working now
- All forms now use Lazarus' excellent anchorings for controls
Known issues:
- #2149: Missing support for MS SQL and Interbase/Firebird
- #2131: Crashes in grid cell editors, especially after hitting the Esc key
- #2143: No .rpm package for RedHat based Linux. Help appreciated.
- #2141: no wordwrap in SQL editors
A big thanks go to the Lazarus team for providing such a nice and responsive IDE. Congratulations for releasing Lazarus 4.0 these days. HeidiSQL for Linux is yet built with Lazarus v3.8 and FreePascal v3.2.2.
12.10
Get it from the download page
3rd party updates:
- Issue #2076: exchange 32 bit SSL libraries with their 64 bit pendants, fixing SSL connections with libpq and libmariadb
12.9
Get it from the download page
3rd party updates:
- Upgrade to Delphi 12.1 compiler
- PostgreSQL: Add libpq-17.dll v17.0.2
- Issue #2022: Update libpq-15.dll to v15.0.10
- Issue #2022: Update OpenSSL libraries used by libpq-15.dll to v3.4.0 (64 bit only), taken from https://wiki.overbyte.eu/wiki/index.php/ICS_Download#Download_OpenSSL_Binaries
- Issue #2022: PostgreSQL: update OpenSSL libraries to v1.1.1s, taken from https://wiki.overbyte.eu/wiki/index.php/ICS_Download#Download_OpenSSL_Binaries
- Update SQLite libraries to v3.48.0.0, and SQLite multiple cipher libraries to v2.0.2.0
- Update libmariadb and plugins to current GA release v3.4.3
- Issue #2036: update vcl-styles-utils code to their current master branch state
- Update style file from Delphi 12.1. Related to https://www.heidisql.com/forum.php?t=43616
New stuff:
- Show editor hints for string literals, revealing their character length
- Show editor hints for routine tokens, with routine parameters, comment and body
- Show table columns with datatype in table token hint (screenshot)
- Issue #872: add support for creating and altering INVISIBLE columns in table editor with MariaDB 10.3.3 and MySQL 8.0.23 (screenshot)
- Issue #2066: support MSOLEDBSQL ADO providers with version postfix for MS SQL (screenshot)
- Issue #1975: add preference option to skip dialog for selecting the SQL reformatter (screenshot)
- Issue #1777: basic support for function key parts in MySQL 8.0+ (screenshot)
- Show editor hints for SQL functions, data types, tables and procedures when mouse hovers a token
- Show function description text in hint panel when using the completion proposal
- Issue #2046: support 4 different SSL verification levels on PostgreSQL
- Issue #2035: support new REPLICA MONITOR admin privilege on MariaDB 10.5.9+
- Issue #2009: basic implementation of a data generation tool, in table tools dialog (screenshot)
- Issue #2004: load and display SQLite triggers in database tree and tab
- Issue #619: support spatial columns with an SRID in table editor, on MySQL 8.0+ (screenshot)
- CSV import: add checkbox option for keeping dialog open after successful import, so the user may process multiple files with less clicks (screenshot)
Bugfixes and enhancements:
- Fix incompatible parameters for OnDragDrop event on some VirtualTree's
- Code readability: use named constants for column indexes on table editor
- Issue #1777: indicate functional key part in table editor with a different icon
- Issue #2071:
- drop 32bit mode from installer
- update copyright year in license file
- #1296: remove VC redistributable package (will be replaced by a note on the download page)
- Issue #2071: provide 3 new languages by InnoSetup installer
- Fix non-painted pasted columns in table editor
- Issue #2063 and #2002: repaint database tree after filtering
- Issue #2035: rename REPLICA MONITOR privilege to SLAVE MONITOR, which seems to be the preferred name in MariaDB
- Issue #2003: set no column for auto-sizing, in foreign key list
- Issue #2038: fix empty preview panel on first click in image blob
- Issue #2050: Add new line at end to support comments at the end of a view definition
- Issue #2058: create a more complete functions-postgresql.ini from the documentation on postgresql.org
- Put key icons besides column names in completion proposal
- Issue #2051: fix unused column default value when creating a new grid row, if that default value is a simple integer expression
- Issue #2024: fix slow grid export
- TMySQLConnection.SetOption: find defined name of option constant per RTTI and show it in error message (when setting failed)
- Issue #1426 and issue #1768: minor: do not try to set MARIADB_OPT_TLS_VERSION option with libmysql
- Issue #1426 and issue #1768:
- fix value of MYSQL_OPT_SSL_VERIFY_SERVER_CERT constant, hopefully fixing SEC_E_ALGORITHM_MISMATCH with libmariadb
- disable MYSQL_OPT_SSL_VERIFY_SERVER_CERT if SSL checkbox is not checked, required since libmariadb C Connector 3.4.0
- show colored warnings in log panel for each failing mysql_options() call
- Issue #2041: categorize PostgreSQL's MONEY type from floats into text types, to fix exports and editing localized values including a currency symbol
- Issue #1253: minor code simplification and inline documentation
- Issue #2040: fix new crash through accessing non existent ActiveGrid
- Issue #1253: fix queries for dropping primary or unique key in PG tables
- Issue #2040: when closing a query tab, cancel cell editor if active, preventing crash
- Table editor: fix crash happening through clear indexes button
- Issue #1981: increase contrast for colored text in privilege tree with dark styles
- Attempt to fix DLL hijacking issue with DWrite.dll per manifest
- Issue #2036: disable clickable anchors in message dialogs when current style is dark, to work around unreadable text
- Issue #1992: Escape ampersand in caption of menus and tabs, preventing underlined hotkey generation for names of session, database and tables
- Issue #2031: Cast MySQL's JSON type columns to literals in WHERE clause of grid UPDATEs and DELETEs. Similar to PostgreSQL's colName::text / issue #769
- Issue #922: remove milliseconds from exported date/time values in Excel mode
- Issue #278: prevent connection activity through hovering status bar while a query is running
- Issue #1965: remove unused variable
- Issue #321: leave away name of indexes when creating a table on PostgreSQL
- Issue #2000: disable multiline feature in grids, even when setting "Lines of text in grid rows" is larger than 1. Aims to fix laggy performance in grid with large contents.
- Enable loading first part of JSON columns in grid, enhancing scroll performance
- Issue #2014: code refactor: move ParseSSLSettings into TUser class
- Issue #2014: user manager: parse SSL settings from SHOW CREATE USER, but also keep parsing SHOW GRANTS for backward compatibility
- Issue #2011: pre-select a reasonable collation if the servers default collation is not set or not yet supported by Heidi
- Issue #1907: fix missing assignments in TDBObject.Assign, causing a default AvgRowLen of -1 which slows down the SQL export
- Code cleanup: Make use of TDBConnection.Has(TFeatureOrRequirement) in more MySQL related code
- Issue #2007 and issue #1965: use the previous RowsAffected value after ShowWarnings in grid update
- Issue #2006: enhance foreign key combo editor in grid for long item text, so the items show a hint in mouse-over
- About box: show Delphi version behind compiled date
- Issue #1998: fix non-scaled title text font in completion proposal
- Issue #1991: check if left part of table name up to a dot lives in the database list. If not, assume it is part of the table name.
- CSV import: set default folder and filename in open-file-dialog to the one of the selected file
- Issue #1984: fix undefined and wrong result of TMySQLQuery.TableName when using a table alias
- Move mostly empty log message to debug level
- Issue #2000: restore partly disabled support for multi lined grid rows
- Issue #2070: clear grid selection when jumping to next search result
- Issue #1874: fix using "UnknownTable" when copying PostgreSQL rows in data tab
- Set hint font from underlying SQL editor, to apply a better formatting
- Issue #2053: add debug log lines in all places where a sorting is created or restored
- Issue #2063 and #2002: repaint database tree after filtering
- Fix Delphi error message saying SynEdit's OnDropFiles declaration has an incompatible parameter list
12.8
Get it from the download page
3rd party updates:
New stuff:
- Issue #1284: add support for encrypted SQLite databases, using the C API from utelle/SQLite3MultipleCiphers
- Issue #1964: support MariaDB's INET4 and INET6 data types
- Issue #1604: support creating table indexes on SQLite
- Issue #1604: support adding primary key to new tables, which needs to be done inside the CREATE TABLE code
- Issue #1605: support dropping table indexes on SQLite
- Issue #1965: show warnings from custom queries in the bottom log panel, right when they occur, not at the very end of a batch
- Issue #1428: debug logging of query time and network time after each result-query
- Issue #1972: Add new security option to verify SSL certificate, in MySQL and MariaDB
- Get query result tab caption list from "-- names:" comment, similar to "-- name:" in a single query
Bugfixes and enhancements:
- Issue #1768 and issue #1426: fix wrong mysql_options() constants for libmysql v8+, to fix SSL connections to servers with OpenSSL 3.x, throwing a SEC_E_ALGORITHM_MISMATCH error. Thanks a lot to Justin Fiedler and Gurianoff for helping out.
- Issue #1330: Use custom tab width and tabs-to-spaces setting uniquely in all places where we generate code.
- Issue #1956: Fix retrieval of PG foreign keys on table names which exist in multiple schemata.
- Support zooming per mouse wheel in the procedure editor and log panel
- Issue #1951: Add CURRENT_TIMESTAMP function, this time missing in the newer generated functions-mysql8.ini.
- Issue #1763: fix wrong DPI shown in log panel, and too high donate button after DPI change
- Issue #1897: Mark grid nodes with vsMultiLine, even if asGridRowLineCount option is set to 1. Fixes endlessly received WM_PAINT messages on results with large lines and tabs in it.
- Issue #1948: hide menu item for Sequal Suggest dialog.
- Issue #634: fix HTML in message dialog text containing URLs with trailing double quote
- Issue #1959: fix shrinking/repositioned edit boxes in options tab of table editor, when opening a second table.
- Fix and improve exporting in PHP format (@mlocati)
- Quote restart command in scheduled task item generated by auto-updater
- Issue #1962: reset width and height of completion proposal when user clicks "Reset panel dimensions"
- Issue #1149: reset bottom filter box after switching tables
- Issue #1952: change log level in TDBQuery.IsEditable from debug to info, when user tries to edit a read-only grid result, so the reason and background is more visible for most users.
- Issue #1963: fix doubled DPI factor of proposal width and height, due to its own scaling
- Table editor: disallow editing direction/collation of index node level
- Issue #1604: fix crash when showing index tab due to uninitialized SubParts and Collations in SQLite and PostgreSQL
- Silence sporadic crash in TAdoDBConnection.Destroy, found in uploaded crash reports
- Issue #1967: fix doubled height of donate button with certain fonts, for instance "Microsoft YaHei UI"
- Enhance TConnectionParameters.IsMySQL, to turn "MySQL or MariaDB 8.0" into "MySQL 8.0" in status bar
- Issue #1971: downsize VARCHAR length to 1 for temporary MySQL tables for views, to work around "Row size too large" error
- Issue #1935: indicate unaccepted drop target when dragging folder or session over its current folder
12.7
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
Get it from the download page
3rd party updates:
- Update madExcept exception handler to v5.1.3
- Upgrading to Delphi compiler version 11.3
- Update VirtualTrees component code to release v7.6.5a
- Update vcl-styles-utils from current master branch
- Update SQLite libraries to v3.44.0
- Issue #1841: Update OpenSSL libraries used by libpq-15.dll to v3.1.3
- Update plink executables to v0.79
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)
- https://github.com/doctrine/sql-formatter - hosted on heidisql.com
- https://sqlformat.org/ - Thanks to Andi Albrecht!
- 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_LENGTHStype, and use this for the result ofmysql_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 UPDATEpart ofDEFAULTclause with no parentheses on MySQL 8, which are required only for the initialDEFAULTvalue. - 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: 12.5...12.6
12.5
Get it from the download page
3rd party updates:
- Issue #1784: update OpenSSL libraries used by libpq-15.dll to v3.1.0, taken from http://wiki.overbyte.eu/wiki/index.php/ICS_Download#Download_OpenSSL_Binaries_.28required_for_SSL-enabled_components.29
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
