Releases: HeidiSQL/HeidiSQL
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
ssh
command, 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_LENGTHS
type, 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 UPDATE
part ofDEFAULT
clause with no parentheses on MySQL 8, which are required only for the initialDEFAULT
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: 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
12.4
Get it from the download page
3rd party updates:
- Update DDetours sources to latest (2021-01-01)
- Update vcl-styles-utils sources to latest (2021-01-11)
- Update gnugettext.pas to rev 148 from http://svn.code.sf.net/p/dxgettext/code/trunk/dxgettext/sample/gnugettext.pas
- PostgreSQL: update OpenSSL libraries to v1.1.1s, taken from http://wiki.overbyte.eu/wiki/index.php/ICS_Download#Download_OpenSSL_Binaries_.28required_for_SSL-enabled_components.29
- PostgreSQL: Issue #1758: add libpq-15.dll and its 4 dependent files, all signed with my Authenticode certificate (see #1733)
- madExcept 5.1.2, including a fix for ASLR.
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 b4926f3 . 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 d262a6a : 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 8fc6dba#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 7bea342#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
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
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