(packaging) Create .rpm package through Makefile, plus let GH action run that step in release mode - (fc728cf)
Create checkbox in advanced session setting for new ForceUnicode setting - (75a0f7f)
Create opt-out setting "ForceUnicode", for sessions which shall not force Unicode communication - (ed9a94f)
Enable connection port visible in a column of the session tree - (7cfdb97)
Display auth plugin in a new column of the user listing tree - (3e4f562)
Support authentication plugin selection in user manager - (07112a0)
Grid export option for exporting the focused grid column only - (d896680)
Bypass automatic foreign key lookup in data grid editing through new menu item - (a5ae04b)
Add a separate menu item "copy formatted text", using the old code for copying SynEdit-highlighted text as HTML - (84c63c6)
Filter edit box for shortcuts in preferences - (fb243fc)
Create CLI app for adding PE security flags to heidisql.exe - (3e797e2)
Rename snippet per right-click on query helpers tree - (7171e48)
Name columns in SELECT when exporting table with invisible columns - (1799b0d)
Support invisible indexes on MySQL 8.0+ and ignored indexes on MariaDB 10.6+ - (b3fa484)
Support assigning a default role to a user - (96d2aef)
Support assigning roles to a user or role - (96717cd)
Do not require MySQL's RELOAD privilege just for opening the user manager - (f79d9a5)
When nodes are filtered, change "Check all" action to "Change all visible" - (ebd60b3)
Disable role rename, add menu item for creating a role, support role deletion - (83472c5)
Prevent editing contents of generated columns in data grid - (9ecdff0)
Basic support for MariaDB user roles, loaded without SQL error and shown with a different icon - (3249401)
Add context menu item for deleting a single query from the history - (0035d5e)
Reset a table's current auto_increment value in "delete + insert data" mode - (0422bb3)
Support cancelling server login dialog - (e5b9574)
Keep EXPLAIN output format traditional, on newer MySQL servers - (90f9937)
Make HTML export dark/light mode aware - (dc046e9)
Allow setting database to in PostgreSQL connections, and show and in the pulldown selector - (950e2ca)
π Enhancements
Disable plugin selector as long as no user was selected - (54dd7d8)
Do not copy default type and value from previous column when adding columns to a table - (42a061d)
Suppress dialog for saving modified SQL on app close, when tabs get auto-restored - (4ca01d9)
Remove FLUSH PRIVILEGES from the user managers FormShow handler. If a click on a non-flushed user in the tree produces an exception, that is caught and shown as a normal error message. - (fe7a5ef)
50% black grid lines, should fit on both light and dark theme - (1872916)
Increase supported table size and row limit for quick filter menu showing distinct values - (48eca57)
π Bug Fixes
(ui) Filter away vertical writing fonts with an @ prefix - (1814ee9)
(ui) Size and margin of buttons on SQL help dialog - (61bc258)
(ui) Apply the same larger tree node height on Linux - (c770406)
(ui) Remove default "add user" event from add button, turn it into a pure dropdown button - (d7910c1)
Copy table dialog crashes when none of dbtree and listtables has Focused=True - (9216061)
Prefer SHOW KEYS over SHOW INDEXES, which are synonyms, while very old servers only accept the one with KEYS - (b97122c)
Prevent grid queries from doing "WHERE intcol::text = 1", due to "1" being incompatible to the text value on the left - (bcea889)
Create SQL export option for wrapping DML commands in a BEGIN/COMMIT transaction - (5560454)
Display approximate row count of tables in database tab on MS SQL - (146044f)
Support full table status option in SQLite, showing "Rows" from COUNT(*) for each table - (422935a)
Add security policy for supported versions and reporting - (7ce4a23)
Prefer KILL QUERY over KILL on MySQL and MariaDB, when using the "Kill process" menu item in Host > processlist - (b3743d8)
New attempt to leave the main window invisible behind the session manager - (be5322c)
Show virtual, stored and hidden columns in SQLite - (0a87a73)
π Enhancements
Move color scheme submenu from Tools to Display menu - (f7f90e8)
Export tables which are hidden through the table filter - (42e5277)
π Bug Fixes
Crash on macOS, due to running Connection.ShowWarnings directly in the TQueryThread - (d62807a)
Less aggressive debug compile mode, made the app unresponsive when trying to close - (8d48099)
Two more exception causes found in uploaded reports - (e33ea1d)
Sporadic "no database selected" when updating grid header with row details - (c9eb765)
Wrong use of Copy(), which is one-based not zero-based, and remove translated appendix to snipped log message which may use critical chars and confuse SynEdit - (e3fc3f5)
Various crash causes, reported in uploaded bug reports - (6215d19)
Missing required package LazControls for TSpinEditEx - (519a84a)
Remove default keystrokes from query editor: 2x ecRedo and 1x ecDeleteLine - (2bc9d78)
Wrong SQL on MS SQL when renaming table per table editor - (a763fd1)
Use default brew path to sshpass on macOS - (b7c3d07)
Status bar text gets written into the panel right besides the current one, on Linux/macOS - (dfb86d5)
Several crash causes Host subtabs when connection is lost externally - (1029657)
Non stored global setting for "sort alphabetically" checkbox in column selection - (0ccb1ac)
High CPU load and unresponsiveness through SynEdit highlighter when starting to edit large text in popup editor - (676fcd7)
Crash when enabling TShellListView.MultiSelect in OnFormShow, now sets options per setter method, before FormShow - (2acce35)
Crash on right-click in empty area of query result grid - (6309305)
Data grid context menu not opening after click in empty area - (10fc117)
Repaint columns list after move up/down a column - (6a0cbe3)
Out-of-memory error in call to sqlite3_open() on a non-existent SQLite database file - (e93924f)
Font bold + italic setting not stored in settings - (cc5b811)
Potentially crashing typecast in LoadRecentFilter - (da07591)
Initial FK names assigned in TfrmTableEditor.listForeignKeysNewText() were lacking the referencing table's table name in case the referencing table was not created yet (pr from Jochen Neubeck) - (d8cd61c)
Wrong schema queries in SQLite, always shows columns and indexes of first database file - (7072986)
BIT values in MS SQL grid queries prefixed with MySQL b'' style - (7456c38)
Random crash in dodgy typecast TEdit/TEditButton - (37add0f)
Crash when moving added column to very bottom - (b739799)
Load any foreign keys, anyway if the user owns them, on PostgreSQL - (dbab4cb)
Wrong captions on quick filter actions shown in preferences > shortcuts - (3e0bf91)
Crash in OpenTextFile, for a 0-bytes file - override the encoding to one without BOM - (27e26a6)
Keep column default value in table editor, when user changes its datatype to one in the same category as before (int => bigint) - (3c518ad)
Trim away spaces around name of routine parameter silently - (b681ebf)
Re-enable dropping sql files on main form - (314db47)
Missing translations, and rephrase the "themes not supported" text - (7dfad02)
TDBQuery.TableName always returned an empty string on MS SQL - (520a90c)
TDBQuery.Col() crashes with "Column not available" on certain locales - (a01acd1)
Reset DesignTimePPI in all forms from 120 to the default 96, let the IDE scale controls down and move or add some defaults like LCLVersion. - (e635ae5)
Allow $$ as delimiter again on non-PostgreSQL connections, and ` on non-MySQL connections - (71bb25b)
π Refactor
Migration from Array[TSQLSpecifityId] to TSqlProvider - (31ba8bf)
Make grid-highlight-same-text-color part of the predefined color schemes - (7854157)
Switch color scheme from Tools main menu - (c8c3b23)
Introduce global AppColorSchemes for managing SQL and grid colors, and sync both with the app's dark mode (still only on Windows) - (d313a59)
Sync active line color and brace highlight with the app's dark or light mode - (3510728)
Auto-switch to dark or light SQL colors in sync with the app's dark mode - (8a08e77)
Support dark mode, using MetaDarkStyle from OPM, and provide the 3 known custom settings: automatic, light and dark - (3f9e867)
Re-enable dropping files from file manager to "insert files to BLOB" dialog - (23fc9c0)
Upgrade DPI awareness to Per-Monitor v2, add TMainForm.FormChangeBounds as a replacement for the missing OnAfter/OnBeforeMonitorDpiChanged events - (9eab28e)
Re-enable menu item on list header context menu: "Toggle visibility of all columns" - (41169f7)
Support European umlauts/accents as \w (word char) in some regular expression areas - (304cd26)
Auto-uppercase keywords, data types and functions - (62cda84)
Recreate previous state of trigger after realizing the user edited code has errors - (e7e5e11)
Create a TSynEditMarkup descendant and use it for highlighting selected text occurrences - (8a667f2)
Create custom setting so the user may define a terminal app himself, and auto-detect terminal app if the setting is yet empty - (613e207)
Enable InnoSetup script for creating Windows installer - (317edcd)
Re-enable codepage => charset mapping using GetACP from DelphiCompat unit - (79e4654)
Re-enable ValidFilename function with platform specific lists of disallowed characters - (f3a0594)
Re-enable support for hyperlinks in message dialogues, and use TTaskDialog again for simple messages on Windows - (15eb52b)
Support portable mode with a portable.lock file in the app folder - (c528c5d)
ERangeError when editing text grid values which allow more than 2^31 chars, e.g. LONGTEXT - (42b5d52)
Set default value for ThemeIsDark for cases where AppleInterfaceStyle does not exist (= light mode) - (26ca75e)
Reload color scheme after auto-apply, reintroduce ThemeIsDark with a detection for Windows and macOS, use MetaDarkStyle units only on Windows - (b4afc3a)
Invalid typecast in List.Add(BaseForm.Components[i]), when running debug builds - (38faf57)
Wrong length of text detected (always 0) - (930a815)
Crash in data grid when switching to an empty table on ArchLinux - (e9b6835)
Next attempt to fix ERangeError crash in TBaseVirtualTree.UpdateVerticalRange - (c8e8bed)
Wrong ModalResult on "Replace all" button - (2367ac6)
Create SQL export option for wrapping DML commands in a BEGIN/COMMIT transaction - (5560454)
Display approximate row count of tables in database tab on MS SQL - (146044f)
Support full table status option in SQLite, showing "Rows" from COUNT(*) for each table - (422935a)
Add security policy for supported versions and reporting - (7ce4a23)
Prefer KILL QUERY over KILL on MySQL and MariaDB, when using the "Kill process" menu item in Host > processlist - (b3743d8)
New attempt to leave the main window invisible behind the session manager - (be5322c)
Show virtual, stored and hidden columns in SQLite - (0a87a73)
π Enhancements
Move color scheme submenu from Tools to Display menu - (f7f90e8)
Export tables which are hidden through the table filter - (42e5277)
π Bug Fixes
Crash on macOS, due to running Connection.ShowWarnings directly in the TQueryThread - (d62807a)
Less aggressive debug compile mode, made the app unresponsive when trying to close - (8d48099)
Two more exception causes found in uploaded reports - (e33ea1d)
Sporadic "no database selected" when updating grid header with row details - (c9eb765)
Wrong use of Copy(), which is one-based not zero-based, and remove translated appendix to snipped log message which may use critical chars and confuse SynEdit - (e3fc3f5)
Various crash causes, reported in uploaded bug reports - (6215d19)
Missing required package LazControls for TSpinEditEx - (519a84a)
Remove default keystrokes from query editor: 2x ecRedo and 1x ecDeleteLine - (2bc9d78)
Wrong SQL on MS SQL when renaming table per table editor - (a763fd1)
Use default brew path to sshpass on macOS - (b7c3d07)
Status bar text gets written into the panel right besides the current one, on Linux/macOS - (dfb86d5)
Several crash causes Host subtabs when connection is lost externally - (1029657)
Non stored global setting for "sort alphabetically" checkbox in column selection - (0ccb1ac)
High CPU load and unresponsiveness through SynEdit highlighter when starting to edit large text in popup editor - (676fcd7)
Crash when enabling TShellListView.MultiSelect in OnFormShow, now sets options per setter method, before FormShow - (2acce35)
Crash on right-click in empty area of query result grid - (6309305)
Data grid context menu not opening after click in empty area - (10fc117)
Repaint columns list after move up/down a column - (6a0cbe3)
Out-of-memory error in call to sqlite3_open() on a non-existent SQLite database file - (e93924f)
Font bold + italic setting not stored in settings - (cc5b811)
Potentially crashing typecast in LoadRecentFilter - (da07591)
Initial FK names assigned in TfrmTableEditor.listForeignKeysNewText() were lacking the referencing table's table name in case the referencing table was not created yet (pr from Jochen Neubeck) - (d8cd61c)
Wrong schema queries in SQLite, always shows columns and indexes of first database file - (7072986)
BIT values in MS SQL grid queries prefixed with MySQL b'' style - (7456c38)
Random crash in dodgy typecast TEdit/TEditButton - (37add0f)
Crash when moving added column to very bottom - (b739799)
Load any foreign keys, anyway if the user owns them, on PostgreSQL - (dbab4cb)
Wrong captions on quick filter actions shown in preferences > shortcuts - (3e0bf91)
Crash in OpenTextFile, for a 0-bytes file - override the encoding to one without BOM - (27e26a6)
Keep column default value in table editor, when user changes its datatype to one in the same category as before (int => bigint) - (3c518ad)
Trim away spaces around name of routine parameter silently - (b681ebf)
Re-enable dropping sql files on main form - (314db47)
Missing translations, and rephrase the "themes not supported" text - (7dfad02)
TDBQuery.TableName always returned an empty string on MS SQL - (520a90c)
TDBQuery.Col() crashes with "Column not available" on certain locales - (a01acd1)
Reset DesignTimePPI in all forms from 120 to the default 96, let the IDE scale controls down and move or add some defaults like LCLVersion. - (e635ae5)
Allow $$ as delimiter again on non-PostgreSQL connections, and ` on non-MySQL connections - (71bb25b)
π Refactor
Migration from Array[TSQLSpecifityId] to TSqlProvider - (31ba8bf)
Make grid-highlight-same-text-color part of the predefined color schemes - (7854157)
Switch color scheme from Tools main menu - (c8c3b23)
Introduce global AppColorSchemes for managing SQL and grid colors, and sync both with the app's dark mode (still only on Windows) - (d313a59)
Sync active line color and brace highlight with the app's dark or light mode - (3510728)
Auto-switch to dark or light SQL colors in sync with the app's dark mode - (8a08e77)
Support dark mode, using MetaDarkStyle from OPM, and provide the 3 known custom settings: automatic, light and dark - (3f9e867)
Re-enable dropping files from file manager to "insert files to BLOB" dialog - (23fc9c0)
Upgrade DPI awareness to Per-Monitor v2, add TMainForm.FormChangeBounds as a replacement for the missing OnAfter/OnBeforeMonitorDpiChanged events - (9eab28e)
Re-enable menu item on list header context menu: "Toggle visibility of all columns" - (41169f7)
Support European umlauts/accents as \w (word char) in some regular expression areas - (304cd26)
Auto-uppercase keywords, data types and functions - (62cda84)
Recreate previous state of trigger after realizing the user edited code has errors - (e7e5e11)
Create a TSynEditMarkup descendant and use it for highlighting selected text occurrences - (8a667f2)
Create custom setting so the user may define a terminal app himself, and auto-detect terminal app if the setting is yet empty - (613e207)
Enable InnoSetup script for creating Windows installer - (317edcd)
Re-enable codepage => charset mapping using GetACP from DelphiCompat unit - (79e4654)
Re-enable ValidFilename function with platform specific lists of disallowed characters - (f3a0594)
Re-enable support for hyperlinks in message dialogues, and use TTaskDialog again for simple messages on Windows - (15eb52b)
Support portable mode with a portable.lock file in the app folder - (c528c5d)
ERangeError when editing text grid values which allow more than 2^31 chars, e.g. LONGTEXT - (42b5d52)
Set default value for ThemeIsDark for cases where AppleInterfaceStyle does not exist (= light mode) - (26ca75e)
Reload color scheme after auto-apply, reintroduce ThemeIsDark with a detection for Windows and macOS, use MetaDarkStyle units only on Windows - (b4afc3a)
Invalid typecast in List.Add(BaseForm.Components[i]), when running debug builds - (38faf57)
Wrong length of text detected (always 0) - (930a815)
Crash in data grid when switching to an empty table on ArchLinux - (e9b6835)
Next attempt to fix ERangeError crash in TBaseVirtualTree.UpdateVerticalRange - (c8e8bed)
Wrong ModalResult on "Replace all" button - (2367ac6)
For a list of all the changes up to date, please read CHANGELOG.md.
Tip
This version has problems loading libmariadb library. The issue will be fixed in the next release. To work around in this release you may switch to libmysqlclient instead. If the library drop-down does not show libmysqlclient, install it via sudo apt install libmysqlclient-dev.
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.
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
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
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
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
Issue #2229: prefer const over constref for FPC>=3.2.4, fix unsupported TabOrder on TSpeedbutton, pass a float value to FloatToStr
remove unused units from uses clause in lpr project file
Issue #2221: fix wrong detection of table alias and following dot, with text after the current cursor position
Issue #2221: enhance SQL completion proposal in a way SynEdit/Lazarus propagates it, with a focus on column names
Issue #2227: enable formatter for JSON code in text editor
Issue #2203: auto-convert Windows home path to Linux home path when importing a setting file
Issue #2222: fix missing last character in CREATE TABLE code on table editor and copy-table dialog
Issue #2202: show a more helpful hint when no library was selected (and none is available) for connecting
Issue #2216: remove predefined SynMemo keystrokes ecLineBreak, ecInsertLine, ecDeleteWord. The latter one inactivates Ctrl+T shortcut for new query tab
Issue #2202: prefer libmariadb over libmysql when none of them is installed. Also, prefer the -dev packages.
Issue #2202: depend on libgtk2.0-0t64, openssl and openssh-client. Also, require all of the database driver libraries so users are not potentially left with an empty library drop-down.