HeidiSQL v12.22
12.22 - 2026-10-25
⛰️ Features
- New login manager for MS SQL Server, closes #17 - (7ffb2f1)
- New role manager UI for PostgreSQL, closes #80 - (4267133)
- Show hints in all controls if set. Same as in master/37d02ea3 - (e07a913)
- Inject branch commit count as build number at build time - (a8fd18e)
- Build, sign and notarize macOS app bundle in CI - (cae4e0c)
- Install Lazarus 4.8 on Windows and macOS runners, drop setup-lazarus action - (46ea9be)
- Use fully qualified table name in "Select Top x rows" action when a click on it is combined with Shift - (06ab070)
- Add Linux Qt theme selection - (816a819)
🚀 Enhancements
- Hint at "Send batch in one go" for undeclared variables on MS SQL - (4ed6e5f)
- Rephrase warning message displayed when a grid edit/delete did not affect any row - (9da8a80)
🐛 Bug Fixes
- Firebird access violation on macOS; fail app bundling on missing client libs - (b012582)
- Correct relative target of firebird.msg symlink - (c80253d)
- Link bundled firebird.msg from Contents into Resources - (de488ed)
- Place fbclient in Contents/Frameworks for session manager detection - (400944e)
- Single rpath and @loader_path rewrites for bundled Firebird client - (c83d850)
- Move bundled Firebird client to Contents/Resources to satisfy codesign - (512bd5f)
- Pkgutil --expand requires non-existing target directory - (e546c29)
- Bundle missing fbclient library in macOS app bundle - (feca7eb)
- Make "apply filter" and "clear" buttons visually distinguishable - (160187d)
- Crash when creating event in object editor - (d5ec718)
- Support InterBase BOOLEAN columns and its missing partial column load. See #2527 - (b572b2f)
- Only offer matching Firebird or InterBase client libraries - (821c2d4)
- Interbase/Firebird column types, DEFAULT clause order and SUBSTRING. Closes #2527 - (d9ab3cc)
- Make build number injection portable to BSD sed on macOS - (620e5b1)
- Crash when selecting a table on macOS x86_64 - (690972a)
- Session manager crash on macOS x86_64 from enum dictionary keys - (7c1608e)
- Repair tab sections with empty name in tabs.ini on restore. See #2637 - (805722c)
- Blinking caret in query editor after using code completion - (6b1a156)
- Non-appearing context menus on tree nodes in session manager, table and routine editor - (b280ef0)
- Visible dropdown arrow on toolbar buttons with dark Qt themes - (84c0f0e)
- Sort folders and files alphabetically in file open/save dialog - (285cb8b)
- Prevent slash in session names from corrupting settings import and session clone - (2f21438)
- Render VirtualTree content at correct size on macOS retina - (832ff89)
- Missing translation for error message - (a87845f)
- Indexes created with CREATE INDEX not shown on MS SQL - (8c41545)
- Hanging query tab and double execution of non-SELECT queries on MS SQL - (a48a722)
- Use TBlobField.SaveToStream instead of DataStream, unavailable in FPC - (816cbd2)
- Fetch MS SQL binary column values via TBlobField stream in GetColBinData - (8f34f5f)
- Wrong hex prefix/postfix for PostgreSQL, insecure break after testing 1024 characters in IsHex - (2b64345)
- Hide LIKE quick filters in context menu of binary grid values, which would now be broken through quoted hex values - (dc5c5ab)
- Use correct hex prefix/postfix on MS SQL and PostgreSQL, allow odd length of hex body in MySQL - (bdb27f1)
- Wrong IsHex result on non-MySQL connections, prevent escaping quotes in SQLite hex values x'aa...' - (29d26b5)
- Use connection specific hex prefix and postfix when editing binary values in grid - (e06a4ff)
- Implement TSQLiteQuery.GetColBinData for byte-exact BLOB access - (b49cd3d)
- Read SQLite BLOB columns via sqlite3_column_blob instead of truncated text - (24b80ba)
- Assign SQLite procedures sqlite3_column_blob and sqlite3_column_bytes to TSQLiteLib - (707543c)
- State updated Lazarus 4.8 version used in workflow - (7b0684d)
- Use Cmd instead of Ctrl for default keyboard shortcuts on macOS - (5aaa0eb)
- Splitter between query editor and results not draggable on macOS - (1363b16)
- Invalid JSON export from empty grid result - (f1a1904)
- Remove invalid -s flag from security set-key-partition-list - (1910c5c)
- Correct argument order for security set-keychain-settings - (1e108ce)
- Use plain string for codesign flags instead of empty array (set -u unbound variable) - (9e777d7)
- Move secrets check from step if: into script (secrets context not allowed in if:) - (072bbb0)
- Use curl -L with /download suffix for SourceForge installer download on Windows - (2ad4009)
- Run apt-get update before installing Lazarus debs on Ubuntu - (35e24e8)
- Re-enable setting width of helpers box on query tabs - (f17d084)
- Default name for new constraint too long for MySQL - (91ba1d4)
- Range check error when starting SSH tunnel - (a834721)
- Keep database nodes expanded on tree refresh, and hide table tabs after dropping the object - (c976d17)
- Stuck UI after firing query with SQL error on MS SQL - (905eb8f)
- Access violation on MS SQL connections, after applying filter on data tab - (9a209eb)
- Make some cancel buttons react on Esc key - (070ea3c)
- Use newer/renumbered MYSQL_* constants with libmysql v8+ - (aabe034)
- Preserve Qt tree subclass with standard LFM classes - (81ae758)
- Keep Lazarus forms designer-compatible - (9e682a1)
- Backport Lazarus Qt6 HiDPI scaling - (dca7a9a)
- Avoid cross-thread keep-alive timer access - (ae2b908)
- Improve VirtualTreeView hints on Qt - (31f5c73)
- Improve VirtualTreeView interaction on Qt - (1b057bd)
- Render VirtualTreeView correctly on Qt - (6add51c)
- Improve Linux font handling - (59a6b09)
- Bunch of often occurring memory leaks, found by @ArtemRazin - (04d50c5)
- Require 64bit specific libraries in rpm package, so the client should never decide for 32bit - (b92d253)
- Crash on macOS while setting listForeignKeys.Width - (6727efc)
🚜 Refactor
- Consolidate tree drag-start handlers into TMainForm.AnyGridMouseMove - (1d35fab)
- Replace deprecated SynEdit line color API - (f1775eb)
- Replace deprecated SynEdit selection API - (d4a57c3)
⚙️ Miscellaneous Tasks
- Keep test-signing for tag builds, rename macOS bundle to upstream scheme - (db843de)
- Bump LCLVersion to 4.8.0.0 in all forms - (0ae7544)
- Pin line ending policy in .gitattributes - (9759c5b)
- Sign tag builds with SignPath release-signing policy, regular builds with test-signing - (1b9cf9a)
- Make SignPath signing policy configurable via SIGNPATH_SIGNING_POLICY variable - (363f829)
- Switch SignPath GitHub Action to v3 connector - (3fe7e75)
- Sign Windows heidisql.exe via SignPath GitHub Action - (1359bce)
- Upgrade actions to Node.js 24 versions (checkout v6, upload-artifact v6, download-artifact v7, gh-release v3) - (7ea9f11)
Build
- Update Linux builds to Lazarus 4.8 - (ecc4010)
Localize
Note
For a list of all the changes up to date, please read CHANGELOG.md.