Portable HeidiSQL Changelog

What's new in Portable HeidiSQL 2.3.0.6589

Dec 6, 2022
  • Issue #75: create editable list for check constraints in table editor

New in Portable HeidiSQL 11.1.0.6116 (Nov 3, 2020)

  • 3rd party updates:
  • move to new Delphi v10.4 Sydney compiler
  • ship plink.exe v0.73 by installing HeidiSQL, so users don't have to download it
  • use smaller libmariadb.dll v10.4.12 without debug symbols
  • update VCL Styles Utils code
  • Get latest bugfixes for VirtualTrees component
  • Sync latest modifications from official SynEdit component sources
  • New features and enhancements in this version:
  • introduce basic support for connecting to ProxySQL Admin servers, via new network type
  • session paths and names in menus sorted alphabetically
  • Add new "Query" main menu, and put most of the SQL relevant actions there, including a submenu with some new code folding actions. Closes #1132
  • Issue #807: add SQL editor in "Find on server" dialog, to support complex comparisons e.g. on binary values without quotes "=0xaa00"
  • Set "0" as default port for new MSSQL TCP/IP connections, enabling auto-detection
  • Set SQL_NOTES to 0 in SQL export, to silence warnings due to unsupported "ALTER TABLE .. DISABLE/ENABLE KEYS" on InnoDB tables. Closes #756
  • Sort collations alphabetically, in drop-down of column editor in table designer. Closes #828
  • Allow free typing in collation drop-down for collations in a column. Set to empty string if user typed a non existent item. See https://www.heidisql.com/forum.php?t=37117
  • Grid export: escape special characters in LaTeX output
  • Wrap numeric values in LaTeX export with $. See https://www.heidisql.com/forum.php?t=36530
  • Extract MySQL/MariaDB functions hints out of MariaDB 10.5 help tables
  • Grid export: No longer force ANSI encoding for Excel output, but silently insert a BOM
  • Issue #629: do not limit the second column in the query helpers box to a width of 100 pixels
  • Provide UTC versions of most date/time menu items, in "Insert value" grid context menu. Closes #936
  • Provide columns of selected table in completion proposal of query editors, but only if left side strings don't dictate a different table. Closes #9.
  • use TComboboxEx for network types, with icons and ProxySQL sorted after the regular MySQL types
  • Activate hoAutoResizeInclCaption option on all VirtualTree headers, so auto-resizing per double click takes the column captions into account. Closes #906
  • Issue #957: give labels on preferences dialog more horizontal space, for longer translations, synchronize space over all tabs, and fix some tab orders
  • Issue #957: give labels on session manager more horizontal space, for longer translations
  • Issue #618: implement an owner-draw approach for column headers in data grid, and paint sort icons as text, including a superscript number of its index
  • Convert TSynHotKey's to standard VCL THotKey's. And finally remove code extension in SynEditMiscClasses which I accidentally overwrote on updates several times.
  • Issue #120: Allow unsupported ADODB providers per registry hack
  • Play "Error" sound when executed file(s) had errors. See https://www.heidisql.com/forum.php?t=12800 . Also, cancel execution of further files when user presses the cancel button
  • Add informative message in log panel after running SQL files, and play a short "OK" sound. This should probably be an "Error" sound when the file(s) had errors. See https://www.heidisql.com/forum.php?t=12800
  • Show tree lines in database tree, which may be helpful for a better overview
  • Issue #293: make warning threshold for number of grid rows customizable, in preferences dialog, on grid formatting tab
  • Issue #293: prevent long sort operation on header click in large query results
  • Remove nearly unused style packages, and keep the 9 used by more than 100 users last month. Reduces executable size by ~2.5M, and speeds up start up time significantly.
  • Optimize SQL query in TDBConnection.GetTableForeignKeys. See https://www.heidisql.com/forum.php?t=36212
  • Extend exception message with useful folder variable, in TAppSettings.PrepareRegistry, which I saw several times now in user reports, last time here: https://github.com/HeidiSQL/HeidiSQL/issues/1028#issuecomment-628131074
  • Bugfixes:
  • MS SQL: Support UPDATEs and DELETEs with key column values containing international characters
  • SSH tunnel: support very slow connections
  • Prevent access violation in DBTree.GetImageIndex, with no connection on connection root node
  • Format decimal point with milliseconds in date/time values in locale format for Excel
  • fix endless recursion happening on some systems when starting HeidiSQL
  • Overwrite data filter with newly generated one, by click on "Apply filter". Closes #829
  • Limit number of rows per extended INSERT to 1000 in CSV import dialog. Closes #326
  • Rename "IS NULL" and "IS NOT NULL" quick filter actions, so they don't prompt the user for an unused value. Closes #1065
  • Issue #1081: apply quirk for missing IDENTIFIED BY PASSWORD clause to MySQL 5.7.6+ only (MariaDB still includes it). Will still be an issue for newer MySQL versions.
  • Allow underscores in IP address wildcards of users, in conjunction with --skip-name-resolve on the server. Closes #1080
  • Prefer ILIKE over LIKE operator on PostgreSQL servers, for auto-generated queries, to overcome errors with double columns. See https://www.heidisql.com/forum.php?t=36500
  • Fix wrong row index used in TSQLiteQuery.Col and TSQLiteQuery.IsNull. Fixes loading more rows after first page on large SQLite tables. Closes #1053
  • Leave numeric precision and scale away from DOUBLE column detection if either of them is empty. Closes #953
  • Fix alias of PostgreSQL column type TIMESTAMPTZ with missing space. Closes #1071
  • Use different sets of characters not requiring quotes, per connection type. Use that to force quotes around columns with uppercase characters in PostgreSQL. Closes #1072.
  • Use ValidateNode to initialize all column nodes early, so they keep their FColumn data after click on Remove button. Closes #245
  • Set minimum window height of session manager. Closes #1074
  • Issue #444: get quick filter items in "More values" working again without crash
  • Issue #338: reuse progress animation dialog when running multiple SQL files, and fix several focus stealing issues
  • Fix non-ghosted icons in database tree, temporarily in VirtualTrees.Utils.pas. The right place for that fix would be in TVirtualImageList.DoDraw. Closes #1045
  • Safety assignment for connection otherwise created by command line. See https://stackoverflow.com/questions/21168998/why-does-assigned-return-true-for-uninitialized-variables
  • Try to disable styles for madExcept window. Related to #887
  • Auto-reset style to default if selected one does not exist
  • Cast relpages to bigint, preventing out-of-range SQL error in PostgreSQL. Closes #1038
  • Issue #1028: Optimize unused code in TDBConnection.GetDbObjects away, which looked for cached object lists which specific OnlyNodeType property, which we don't cache anyway
  • Issue #1028: Fix one-time recursion in TMySQLConnection.FetchDbObjects, caused by accessing InformationSchemaObjects, which in turn calls GetDBObjects and then again FetchDbObjects. More dramatically, this caused GetTableColumns to do an endless loop with two cache entries for "information_schema". This also fixes many of the v11.0 crashes in TAppSettings.PrepareRegistry, which were just a symptom of that endless loop. Thanks to als2020 on Github for pointing me in this direction.

New in Portable HeidiSQL 9.5.0.5215 Nightly (Jan 5, 2018)

  • Double number of displayed drop down items in SQL export target pulldown

New in Portable HeidiSQL 9.5.0.5214 Nightly (Jan 4, 2018)

  • Introduce a separate installer script for creating an installer which can run without admin privileges, and which has the install directory set to the current user's Program Files directory. Relevant for issue #60

New in Portable HeidiSQL 9.5.0.5213 Nightly (Jan 3, 2018)

  • Don't create pure 32bit installer any longer, to have one thing less to maintain. The normal installer contains the 32bit version already.

New in Portable HeidiSQL 9.5.0.5212 Nightly (Jan 3, 2018)

  • Remove no longer supported Setup option WizardImageBackColor from installer

New in Portable HeidiSQL 9.5.0.5211 Nightly (Jan 3, 2018)

  • Suppress warning messages when running installer doesn't have privileges to write into HKEY_CLASSES_ROOT

New in Portable HeidiSQL 9.5.0.5210 Nightly (Jan 3, 2018)

  • Use encrypted web urls on installer buttons

New in Portable HeidiSQL 9.5.0.5209 Nightly (Jan 3, 2018)

  • Reactivate TSynHotKey again, after removing it accidentally in recent SynEdit update. Should fix a crashing preferences dialog.

New in Portable HeidiSQL 9.5.0.5206 Nightly (Jan 2, 2018)

  • Add a standard .gitignore file for compiled files, local files etc: files that do not need to end up in repository.

New in Portable HeidiSQL 9.5.0.5205 Nightly (Jan 2, 2018)

  • Change ChangeLog URL in main menu under help to its new GitHub location, instead of old SourceForge address.

New in Portable HeidiSQL 9.5.0.5204 Nightly (Jan 2, 2018)

  • Update SynEdit component code to tag 2.1.0-beta. Potentially helps fixing #57.

New in Portable HeidiSQL 9.5.0.5203 Nightly (Dec 30, 2017)

  • Remove unused variable

New in Portable HeidiSQL 9.5.0.5201 Nightly (Dec 27, 2017)

  • Remember previous position of session manager dialog on screen

New in Portable HeidiSQL 9.5.0.5200 Nightly (Dec 27, 2017)

  • Introduce argument indexes in some translation strings, to fix crashes with Japanese and probably other languages, when grammar changes the order of arguments

New in Portable HeidiSQL 9.5.0.5199 Nightly (Dec 27, 2017)

  • Refactor exclusion of virtual columns in various places:
  • introduce TDBQuery.ColIsVirtal() returning a boolean for a column index, and use that instead of examining a columns virtuality everywhere
  • exclude virtual column when exporting SQL code in the grid export dialog - see #53
  • sql export dialog must not activate edit mode on a result, as this introduces endless loops
  • instead, move some code out of PrepareEditing into PrepareColumnAttributes, which we can now call separately without activating edit mode

New in Portable HeidiSQL 9.5.0.5198 Nightly (Dec 22, 2017)

  • Don't copy values of virtual columns when duplicating a row

New in Portable HeidiSQL 9.4.0.5195 Nightly (Dec 19, 2017)

  • Prevent accessing non existing string list item in TMainForm.ListDatabasesGetText, to fix a sporadic crash after dropping a database. Closes #33

New in Portable HeidiSQL 9.4.0.5194 Nightly (Dec 17, 2017)

  • Expect regular expression in filter text on right panel, not a simple string. Keep searching case insensitive, as in prior logic. Add text hint to filter box so the user knows he can enter a regular expression here. Closes #45.

New in Portable HeidiSQL 9.4.0.5193 Nightly (Dec 14, 2017)

  • Support quote chars other than the relevant one within identifiers. For example `"mycolumn"` or "`mycolumn`" ... or even worse: `"``mycolumn"`. Closes #44.

New in Portable HeidiSQL 9.4.0.5192 Nightly (Dec 11, 2017)

  • Don’t send donators’ e-mail addresses unencrypted

New in Portable HeidiSQL 9.4.0.5191 Nightly (Dec 6, 2017)

  • Temporarily disable local number formatting in data grid while the search dialog is open. Closes #30.

New in Portable HeidiSQL 9.4.0.5188 Nightly (Nov 26, 2017)

  • SynEdit's SQL highlighter provides a sample source text. Display that text in the preferences editor panel for SQL colors.

New in Portable HeidiSQL 9.4.0.5187 Nightly (Nov 22, 2017)

  • Prevent TMainForm.DisplayRowCountStats from crashing due to no current table/view/.

New in Portable HeidiSQL 9.4.0.5186 Nightly (Nov 8, 2017)

  • Don't export data for virtual columns. Fixes #5.

New in Portable HeidiSQL 9.4.0.5185 Nightly (Nov 7, 2017)

  • Simplify regular expression for extracting column details in ParseTableStructure(), so it does not barf on huge length/set. Fixes issue #2.

New in Portable HeidiSQL 9.4.0.5184 Nightly (Nov 6, 2017)

  • Create license

New in Portable HeidiSQL 9.4.0.5182 Nightly (Nov 5, 2017)

  • dd issue template for new issues on GitHub

New in Portable HeidiSQL 9.3.0.4984 (Aug 10, 2015)

  • Bugfix: Crash in foreign key dropdown editor
  • Bugfix: Crash when killing processes on very long running servers
  • Bugfix: SQL error when accessing UUID and JSON columns in PostgreSQL via SUBSTR
  • Bugfix: MSSQL: Prefer "schema.table" quoting over "schema"."table" when renaming a table
  • Bugfix: Fix column type converted to locale string format by String.ToUpper in TDBConnection.GetCreateCode - prefer String.ToUpperInvariant instead, to avoid funny characters in data types
  • Bugfix: MSSQL: Do not pass "Database=xyz" to connection string if database(s) setting contains more than one database
  • Bugfix: MSSQL: Try to use some universal date/time format, by injecting a "T" between the date and the time portion
  • Bugfix: Fix wrong detection of BIT default values
  • Bugfix: Use "SET search_path TO db" instead of "SET SCHEMA db" for changing a database in PostgreSQL, for downward compatibility reasons
  • Bugfix: Prepend 'E' to escaped PostgreSQL strings
  • Bugfix: Use updated URL for MariaDB Explain analyzer, and encode semicolon in URL parameter
  • Bugfix: User manager: Select "authentication_string" instead of "password" column on MySQL 5.7.6+
  • Bugfix: Fix various selection bugs in column selection panel
  • Bugfix: Fix SQL error in "Copy table" dialog, in PostgreSQL mode. Use lowercase table and column names in IS.TABLES, so PG can find them
  • Bugfix: CSV import: Disable features supported in MySQL only, if active connection is not MySQL
  • Bugfix: PostgreSQL: Always keep public schema in search path, so one can use procedures from it without prefixing
  • Bugfix: Text import: Use very last value from last row, even if it's not followed by a field or line terminator
  • Bugfix: PostgreSQL: Fix wrong ALTER TABLE query for modifying table comment
  • Bugfix: Update VirtualTree component code to v6.1.0, to fix graphical issues in Windows 8 + 10
  • Enhancement: Show error when SSH port is already in use
  • Enhancement: Add support for PostgreSQL's data types uuid, cidr, inet and macaddr
  • Enhancement: Strip folder path from various file settings, including plink.exe location, if it's the application directory
  • Enhancement: Try higher ports, up to the 20 next ones, as SSH local port, when the configured one is in use
  • Enhancement: Display session name in caption of all message dialogs
  • Enhancement: Add a custom icon for confirmation dialogs, with a question mark on it, so we don't have to use the "i" icon.
  • Enhancement: Use server time for data grid > "Insert value" menu items
  • Enhancement: Show line breaks other than Windows style as normal line breaks in text editor
  • New feature: Introduce option for setting the line break style in text cells without breaks
  • New feature: Session manager: Add support for SSL cipher, and add various texthints

New in Portable HeidiSQL 9.2.0.4947 (May 4, 2015)

  • New feature: Add support for JSON grid export
  • New feature: Add support for Markdown Here grid export
  • New feature: Support new command line parameter "n", or "nettype", which takes an integer, representing the protocol number (0=mysql tcpip, ...).
  • New feature: Add support for connecting to Microsoft Azure Servers
  • New feature: Add edit box + updown buttons for limiting the size of exported INSERT queries in bytes.
  • New feature: Display creation time, last alter time, comment and start time of scheduled events.
  • New feature: Online help document available. Various "Help" buttons in relevant dialogs link to this document.
  • Bugfix: Dropping functions and procedures on PostgreSQL now with required parameters list
  • Bugfix: Size bars in "Database" tab on PostgreSQL now with correct values
  • Bugfix: Loading full grid data on PostgreSQL did not work on text columns
  • Bugfix: Fix microseconds in MSSQL date/time data types, hidden in data and query grids.
  • Bugfix: Use ISO 8601 date/time format on MSSQL
  • Bugfix: PostgreSQL: Fix wrong order of columns shown in indexes, and show normal indexes also
  • Bugfix: Do not uppercase ENUM values in procedure parameter datatypes
  • Bugfix: Fix crash when right-clicking a database, following by a click on "Drop"
  • Bugfix: Version conditional disabling for "Create new" menu items in MySQL mode only
  • Bugfix: TEXT data type has a maximum length of 65k for MySQL only. Introduce other values for MSSQL and PostgreSQL.
  • Bugfix: Fix memory leak in TfrmTableTools.SaveSettings
  • Bugfix: Let longer data type matches win over shorter ones, especially important on PostgreSQL
  • Bugfix: Make TPGConnection.FetchDbObjects compatible to pre-9.0 servers on PostgreSQL
  • Bugfix: Fix non working addition of new columns in MySQL
  • Bugfix: Detect xid type (oid 28) as integer.
  • Bugfix: Detect character type (oid 1042) as char, not varchar.
  • Bugfix: Detect aclitem[] type (oid 1034) as unknown, not text.
  • Bugfix: Fix detection of PostgreSQL data type INTERVAL as VARCHAR.
  • Enhancement: Automatic storing of settings in portable mode
  • Enhancement: Optimize query for getting total row count on PostgreSQL
  • Enhancement: Add support for microsecond precision of MSSQL date/time types in table editor, show these in "Length/Set" column
  • Enhancement: Add a help button to the quite non-intuitive controls on the export dialog
  • Enhancement: Add support for JSON data type on PostgreSQL
  • Enhancement: Add support for HIERARCHYID data type on MSSQL
  • Enhancement: Increase various default values for window dimensions, for reasonable look and feel for new users
  • Enhancement: Add "Rename" context menu item in session tree.
  • Enhancement: Use local number formatting in grids by default
  • Enhancement: Use transparent background for NULL cells by default
  • Enhancement: Support columns with a string literal as default value plus an ON UPDATE CURRENT_TIMESTAMP clause.
  • Enhancement: Increase compatibility when getting procedure body on MSSQL.
  • Enhancement: Remove duplicates from recent file list pulldown.
  • Enhancement: Translate connected/disconnected words in status bar
  • Enhancement: Set focus on filter box when SQL help dialog opens.
  • Enhancement: Update gettext unit
  • Enhancement: Make search/replace dialog resizable
  • Enhancement: Activate "Clear filter" button after applying text to filter memo.
  • Enhancement: Gracefully remove superfluous WHERE keyword from data grid filter, so other places like the previously modified "More filters" menu do not add a second WHERE.
  • Enhancement: Use existing data grid WHERE filter to filter values from quick filter > "More values".
  • Enhancement: Remove outdated details in readme file, and redirect to official help page instead.
  • Enhancement: Detect all array style types on PostgreSQL as unknown type, e.g. TEXT[].
  • Enhancement: Pass column or argument name to NativeToNamedColumnType(), as a hint for the user.
  • Enhancement: Support quoted datatypes in TDBConnection.GetDatatypeByName, coming from TDBConnection.ParseTableStructure

New in Portable HeidiSQL 9.1.0.4867 (Nov 12, 2014)

  • This is a maintenance release, which basically reintroduces support for legacy password encryption (pre-4.1 hash format).

New in Portable HeidiSQL 9.0.0.4865 (Nov 11, 2014)

  • Most important thing this time is the experimental support for connecting to PostgreSQL servers.
  • Also noticable:
  • Completely rewritten interface to plink.exe for SSH tunnel connections. Now supports dialogs which ask for trusting unknown host keys.
  • Bind parameters in SQL queries. When your SQL query contains one or more ":myparam:" occurences, the right hand box offers to set a value for these parameters. Adrien, a former contributor from France, has developed this new feature.
  • The "Find text on server" dialog now also works on MSSQL and PostgreSQL tables.
  • The table editor now supports partitions, in a new read-only tab. That way, partitions a) can be seen by the user and b) get included in the CREATE TABLE code tab.
  • Filter in data grid column selection
  • Disable SQL hints on result tabs: Some users complained about the potentially huge tooltips on the tabs of a SQL query result. These quickly hide important parts of the result rows. If you're one of those annoyed users, you can now disable these tooltips with a new checkbox option in Tools > Preferences > Data appearance > "Popup SQL text over result tabs".
  • Database selector: In a session configuration, you can restrict the databases to display. That was just a normal drop down menu previously. Now, you can check databases and uncheck them in a pulldown menu. Also, the connection used to get the names of all databases is recycled for each click, so only the first pull down click establishes a new (potentially slow) connection.
  • The installer for HeidiSQL now uses localized messages in 23 different languages. Language is auto-selected by checking your Windows locale.
  • The user manager now supports granting privileges for VIEWs. This was not allowed until now, because I misunderstood the MySQL documentation here. See the forum thread with alfiqmiq for details.
  • Ask user to confirm unsafe UPDATEs/DELETEs in query tab before executing.
  • Switch character set from utf8 to the fixed one called utf8mb4 in MySQL.
  • Turn readme.txt into a more comprehensive online help document
  • and even more:
  • Support semicolons in MS SQL passwords
  • Clone hostname for a cloned user
  • Ask to close HeidiSQL processes while installing
  • Check if all indexes have at least one column when creating or altering table to prevent creation of empty index
  • Support primary keys with KEY_BLOCK_SIZE=xyz
  • Allow disabling the creation of start menu icons in the installer
  • Auto-uppercase data types of routine parameters
  • Display filename with path in query tab hint
  • Support changing active result tab per shortcut, Alt+Left and Alt+Right.
  • Disable UNSIGNED and ZEROFILL checkboxes for BIT type columns
  • Fix missing table alias on MSSQL2K
  • Support query timeout on MSSQL and PostgreSQL. Make customizable per up/down scroller in "Advanced" tab of session manager.
  • Add "Save as textfile" action, and include that in routine editor > "CREATE code" tab > context menu.
  • Activate "Select all" action when it appears in a valid popup menu.
  • Increase maximum port number from 2^16-1 (65535) to 2^31-1 (2147483647).
  • Add a 32bit-only installer, for users who want the 32bit version on a 64bit Windows.
  • Support searching for unformatted integers and floats in filter panel.
  • Fix truncation of MSSQL routine body to 4000 characters, as a limitation of nvarchar(4000).
  • Fix SynEdit's double minus comment bug
  • Use prettier "Consolas" as default font for TSynMemo editors, when available, as an alternative to the old-stylish "Courier New".
  • Fix SQL error when using "Quick filter" > "More values" in MSSQL and PostgreSQL.
  • MSSQL: Return date/time string value as expected by server.
  • Enable foreign keys editor on NDB cluster >= 7.3.x.
  • Add support for geometry data types in PostgreSQL.
  • Support renaming tables and views on PostgreSQL.
  • Fix EStackOverflow in TSynHashEntry.AddEntry when adding too many table names.
  • Include SQL_TABLE_VALUED_FUNCTION's in MSSQL object browsing
  • Support DEFAULT clause in PostgreSQL table structure
  • Keep compatibility with older MySQL servers when getting a trigger's CREATE CODE
  • MSSQL: Return float values as expected by server.
  • Introduce handling of stored functions in PostgreSQL: Displays functions in database browser, enables function editor and "run routine" button with argument handling.
  • Add support for MSSQL datetime2 column type.
  • Allow applying CURRENT_TIMESTAMP to DATETIME columns.
  • Add "check/uncheck all" button to column selector in textfile import dialog.
  • Add 64px, 128px and 256px versions to main icon.

New in Portable HeidiSQL 8.3.0.4694 (Jan 28, 2014)

  • Continue to apply filter of table list after refresh but clear it when changing database.

New in Portable HeidiSQL 8.2.0.4675 (Dec 17, 2013)

  • New feature: Fast table status for databases with InnoDB tables. (Disable Session > Advanced > [X] Get full table status)
  • New feature: Favorites in database tree
  • New feature: Append parameter names for procedures and functions in completion proposal
  • New feature: Compressed .sql file export
  • Migration to the brand new Delphi XE 5 compiler
  • Replace out-dated code which partly not runs in 64 bit mode
  • Update gettext unit
  • Update Cromis.DirectoryWatch unit
  • Update VirtualTree component code to 5.2.1 (r567)
  • Update SynEdit component (r114)
  • Revert r4538 (ctrl backspace bug), as this broke tabbing through grid cells
  • Add fallback "DELETE FROM..." to CSV import dialog's option "truncate table"
  • Fix non-working "Replace all" button on search/replace dialog
  • Turn "Drop" confirmation dialogs into custom critical types, and set focus to the Cancel button
  • Quote plink.exe path and file in SSH tunnel preparation, so spaces in the path do not break the CreateProcess call
  • Fix quick filters, broken with formatted numbers
  • Prefer Delphi's various TGraphic descendants over the out-dated GraphicEx library. PNG images even show their transparency now. Removes support for the myriad of exotic image formats
  • Restrict "Quick filters" > "More values" submenu to tables with less than 1GB of data, so we're not running into an endless query

New in Portable HeidiSQL 8.1.0.4545 (Oct 3, 2013)

  • Shorten long SELECT query in data grid, using '*' when all columns are involved.
  • Apply database and table filter on a new connection. Fixes issue #3353.
  • Sort snippet filenames manually before displaying in helper box. Seems file ordering is inconsistent between Windows version. Fixes issue #3351.
  • Using TDBQuery.ColAttributes() and TTableColumn.LengthSet in a query result does not work, as this relies on a previous SHOW CREATE TABLE parsing. Check PMYSQL_FIELD.length instead to return the correct zero-padded string bitmask for a BIT column. Fixes issue #2544.
  • Use a standard TSaveDialog when storing a snippet file. Fixes issue #3346. Also fixes "selection only" version of "Save snippet". Reuse code from actSaveSQLAs action.
  • Get Ctrl+Backspace hotkey to work in grid inplace editor, by enabling autocompletion + autosuggestion. Fixes issue #3168.
  • Trim clipboard contents for quick filter menu items.
  • Add missing event listeners to previously introduced edit box for snippets directory.
  • Make snippets directory customizable. Fixes issue #3276
  • Fix exception in ReadTextfileChunk when file has 0 bytes.
  • Downgrade libmysql.dll to a MariaDB-5.3.12 version. Fixes issue #3343 ("malformed packet" on LOAD DATA). All 5.5 versions seem to be affected, not so 5.3.x. Required tests for the next time I'm updating libmysql.dll: * Ensure LOAD DATA LOCAL INFILE works, and does not throw SQL error 2027/malformed packet * Ensure it's a .dll from the 32bit server version * Ensure it's a MariaDB version, so pluggable authentication still works
  • Update libmysql again with a version from MariaDB 5.5.33a. Fix SQL error 2027 "malformed packet", when firing LOAD DATA command. See http://www.heidisql.com/forum.php?t=13454 and issue #3262.
  • Attempt to fix issue #2640 again (AV on alt-tab when in popup editor), by disabling the completion form in ApplicationDeActivate event. Activate MainFormOnTaskBar again, which fixes issue #2351 (Windows Flip3D feature) and probably also issue #3342 (Alt-tab in Wine)
  • Revert r4003, as issue #2651 could easily be caused by an assigned-check of FPreferencesDialog, which is freed in Toptionsform.FormClose in any case, but leaves the FPreferencesDialog assigned.
  • Ensure editDatabaseTableFilterChange is triggered when a db was expanded, which seems the missing event to get the table filter working again. Probably fixes issue #3313.
  • Always show the "Copy" tooltip when dragging sessions elsewhere, as we always copy by drag'n drop, never move.
  • Load full row content before replacing text using the search+replace dialog on the data grid. Fixes issue #3252.
  • Disable grid in AnyGridBeforeCellPaint after TAdoDBQuery.SetRecNo detected a broken MSSQL connection. Hopefully fixes issue #3336.
  • List recently active translators in about dialog. Also, read out credits from readme.txt, so I don't have to maintain that list in the TMemo, getting unwanted linefeeds whenever I'm saving it.
  • Unescape default text value for a column when inserting a new grid row, so \r and \n and whatever does not get into a cell as a literal. Fixes issue #3283.
  • Update libmysql to a 5.5.32 version from the current stable MariaDB release. Fixes issue #3262.
  • Provide a way to enter the donators email address in the about dialog, and hide all donate buttons if a check on heidisql.com succeeded. Fixes issue #3334.
  • Remove unused uses clause.
  • Add donate button to 3 places: * main toolbar * about dialog * updatecheck dialog
  • Revert r4357 (add database name in GetCreateViewCode), to fix issue #3329 (view export includes superfluous database name). Issue #3098 is still fixed, by the later r4479 (get view columns from IS.COLUMNS).
  • New attempt to fix the file reader for cases where the chunk size end is within a multibyte character. Increase chunk size per loop and retry reading the chunk. See http://www.heidisql.com/forum.php?t=13044
  • Be more verbose in RunQueryFile(), on the progress dialog.
  • Revert r4503, except for the removed helpers.ScanNulChars() and helpers.RemoveNulChars(). Seem Delphi's encoding detection is totally broken. Also, TStreamReader has bugs and hangs on the second call to ReadTextfileChunk(). Most files should be read fine again, including those mentioned in issue #3331. Also fixes issue #3328. TODO: fix reading specific UTF8 files
  • Prefer Windows.GetCommandLine over ParamStr() when parsing command line parameters. ParamStr() removes double quotes.
  • TJumpList.Apply seems to trigger "Access denied" exceptions in some cases. Log these in the log panel, but do nothing when that happens.
  • Introduce Win7+ jump items on task button.
  • Code cosmetic: Move public AppVer* variables to private scope and introduce public properties for the both which are read publicly.
  • Edit raw numbers, not their formatted version which is used for displaying. See issue #653.
  • Try a new approach in helpers.OpenTextFile(), helpers.ReadTextfile() and helpers.ReadTextfileChunk(): Based on TStreamReader instead of TFileStream now, so we can finally rely on Delphi internals for detecting a file's encoding. Also, this should fix read errors in some UTF-8 files, e.g. mentioned on http://www.heidisql.com/forum.php?t=13044
  • Remove helpers.DetectEncoding(). Use a separate TStreamReader in the only caller to detect the encoding of a selected file
  • Remove helpers.ScanNulChar()
  • Add missing translation strings for preferences dialog
  • Issue #3324: Merge "Highlighter" tab into "SQL" tab again, to keep a low number of tabs
  • Divide "Data" options tab into "Data appearance" and "Data editing" tabs, to make room for the new checkbox option "Local number format"
  • Introduce the new data option "Local number format"
  • Issue #3324: When copying from a numeric grid cell, use raw numbers, not the formatted version.
  • Use internal flag to remember whether new grid text was pasted from clipboard. This way we can again use "Grid.Text[] := xyz", which triggers AnyGridNewText(), which again is able to pass the right "Null" parameter to TDBQuery.SetCol(). This fixes issue #3325 (invalidated controls, especially "cancel changes" action after pasting). Also, this fixes pasted formatted numbers not being unformatted internally. Finally, we have 5 lines of code less than before :)
  • Show thousand separator in data grids. Fixes issue #3324.
  • Introduce TMainForm.FGridCopying flag, and use that to temporarily disable integer to datetime conversion in AnyGridGetText(). Fixes issue #3322.
  • Remove properties ServerVersionInt and ServerVersionStr from TDBConnection. Instead, move private GetServerVersionInt() and GetServerVersionStr() to public scope, named like the previously used properties now
  • Remove overridden methods in descendants of TDBConnection, do it with a version conditional in the upper class
  • Finally, remove ConvertServerVersion() and merge code into ServerVersionStr()
  • TOP(x) clause for UPDATES + DELETES introduced in MSSQL 2005. Do not use that on older servers. See http://www.heidisql.com/forum.php?t=13289
  • Fix reading chunks from SQL file with a multiplier of the encoding's maximum character length. Broken in r4470.
  • Fix usage of wrong TDBObject caused by using wrong offset from TDBObjectList.
  • Move code from FillPopupQueryLoad into automatically triggered FillPopupQuery.OnPopup event.
  • Make getting system imagelist and imageindex shared code in Helpers.GetSystemImageList and Helpers.GetSystemImageIndex
  • Remove call to TranslateComponent, accidentally committed in r4490
  • Draw system icons with transparency
  • Fix crash caused by freeing main image list, see previous commit. Fixes issue #3316.
  • Display system known icons in recent SQL files list.
  • Don't know when exactly but in some cases VirtualTree.FocusedColumn seems to have the InvalidColumn (-2) index. Do not pass such negative indexes to a TStringList in TDBQuery.ColAttributes.
  • Add caption of column selector, forgotten in previous commit.
  • Turn column selection form into a tool window, so I can apply a size-grip at the lower right edge of the form. Remember form dimensions. Fixes issue #3299.
  • Add CHECK option "FOR UPGRADE" to maintenance dialog. Fixes issue #3279.
  • Remove "Run file" dialog, and use a standard Windows IProgressDialog instead when executing a SQL file.
  • Enhance error handling when "Stop on errors" is activated, by showing an error summary at the end of script execution.
  • Fix regex in TDBConnection.ParseViewStructure which matches on IS.COLUMNS.COLUMN_TYPE but just finds empty matches, because all expression groups are optionally. Also, ZEROFILL attribute for numeric columns never gets detected. Fixes issue #3311.
  • Make regex in ParseViewStructure even more loose, this time due to dots in the view's name. See http://www.heidisql.com/forum.php?t=13191
  • Issue #3304: Escape column names for PHP
  • Fetch column names from IS.COLUMNS only, without joining IS.VIEWS from which we anyway don't read something. Fixes issue #3305.
  • Escape exported PHP strings using some extra logic, instead of using incompatible TDBConnection.EscapeString. Fixes issue #3304.
  • Get column names from VIEW per IS.COLUMNS, not per SHOW COLUMNS, to support MSSQL here. Fixes empty grid results for MSSQL VIEWs. See comment #46 of issue #3212.
  • Translate new menu item "Generate SELECT", missing in r4477.
  • Add "Generate SELECT..." menu item to query helpers context menu. See http://www.heidisql.com/forum.php?t=13108
  • Move file related actions to "File" menu
  • Handle ERegistryException's in TMainForm.FinishedQueryExecution by writing them to the SQL log. These seem to happen sporadically in a broken registry, or due to going from a query thread to the main thread again. Guess there is no real fix to that issue.
  • Provide edit box for custom NULL value, in grid export dialog.
  • Increase size of chunk to read from SQL dump from 5M to 20M, so we catch at least the file problems
  • Process messages in loop of query batch on run sql file dialog. Helps making this dialog responsive.
  • Ensure ReadTextfileChunk reads a multiplier of the encoding's maximum byte count per char.
  • Log error message when TEncoding.Convert returns an empty TByte array.
  • Turn unhandled exception in case of SQL errors into a popup dialog when running SQL files.
  • editDatabaseTableFilter.OnChange is triggered in DBtree.AfterPaint, which is implicitly called a million times, when mouse hovers over the tree. * Move that call from DBtree.AfterPaint to RefreshTree, and call it only when it required. Removes a big bunch of useless magic code execution. * This way, I can wrap the code in editDatabaseTableFilter.OnChange in a BeginUpdate/EndUpdate block to postpone painting while looping over the nodes.
  • Include application name in login prompt. Fixes issue #3180.
  • Include schema name in ALTER TABLE query on table editor.
  • Use table name from helper TDBObject in TDBQuery.PrepareEditing, as TMySQLQuery.TableName does not return the VIEW's name when the VIEW contains aggregated columns. Fixes issue #3284.
  • Try to disable platform warnings on command line also
  • Silence various compiler warnings about non initialized variables. Globally turn off platform warnings
  • Avoid using Format() on event body, as this causes AVs when it contains some % sign. See http://www.heidisql.com/forum.php?t=13010
  • Send column default value through UnescapeString and then to EscapeString, and let UnescapeString remove double backslashes. Fixes issue #3283.
  • Use the right binary instead of decimal prefixes for bytes: KiB, MiB etc. And introduce unit for 2^60 bytes: Exbibyte. See http://de.wikipedia.org/wiki/Byte .
  • Limit test query to return one single row, not all rows. Fixes issue #3271.
  • Issue #3240: Set focus on first "Options" tab by default.
  • Add page control to trigger editor, and show CREATE code of triggers in separate tab. Fixes issue #3240.
  • Make charset query compatible to MSSQL 2000. Fixes issue #3269.
  • No need to adjust vertical position of OK button on sorting popup. See http://www.heidisql.com/forum.php?t=12980
  • Adjust control dimensions in login form, so translations fit. See http://www.heidisql.com/forum.php?t=12979
  • Use TDBQuery.DBObject.Database in TDBQuery.DatabaseName(), so for VIEWs we do not get the db from the table which is selected. Fixes issue #3266.
  • Issue #3212: Fall back to db..table if schema is unknown or server has no schema support.
  • Support length of "max" in data types. Used in MSSQL.
  • Issue #3212: Introduce TDBQuery.DBObject, to which we assign the selected object when getting the result for the data grid. Use that DBObject in TDBQuery.QuotedDbAndTableName and TDBQuery.PrepareEditing, where we need to know the schema of the object.
  • Consider schema name when focusing tree node in TMainForm.SetActiveDBObject > TMainForm.FindDBObjectNode > TDBObject.IsSameAs
  • Issue #3212: TDBQuery.SaveModifications makes use of TDBQuery.QuotedDbAndTableName, not TDBConnection.QuotedDbAndTableName. Make first one internally call the second one, so both do the same thing.
  • Do not always display NULL in a MSSQL grid field when value was edited.
  • WITH .. CHECK OPTION" is already contained in the "source" value of a .frm file. Don't include it a second time in TMySQLConnection.GetCreateViewCode. Fixes issue #3258.
  • Support brackets in routine parameters. Fixes issue #3255.
  • Issue #3212: Reestablish MSSQL 2000 compatibility by removing SCHEMA_NAME(schema_id) from TAdoDBConnection.FetchDbObjects.
  • Issue #3212: Inject XY_SCHEMA=xy clause into all other IS queries in TAdoDBConnection.GetCreateCode.
  • Issue #3212: Consider schema name in default objects sorting, so the tree displays the same order as we have in the database tab when sorted by "Name" column.
  • Issue #3212: Display schema name also in database tab, to make it consistent with the tree.
  • Issue #3212: Filter objects by schemata when gathering columns from IS.COLUMNS in TDBConnection.GetCreateCode, so we don't get columns from objects with the same name in another schema.
  • Move helpers:GetIndexIcon to TTableKey.GetImageIndex
  • Avoid calling TDBConnection.ClearDbObjects() on active database after copying table. Instead, call actRefresh which takes care of a probably opened table object in the table editor. * Check for table existence via SELECT on IS.TABLES, avoid usage and refresh of db objects here also. * Fixes issue #3250.
  • Inject default schema between db and table in TDBConnection.QuotedDbAndTableName if target object does not exist. See issue #3212.
  • Copy table dialog: * Clear db cache only once in btnOKclick * Clear db cache of target db when done, instead of refreshing active db * Remove unused variables * Remove empty comment clause from CREATE TABLE code
  • Introduce TDBConnection.FindObject(db, obj). Use that in TDBConnection.QuotedDbAndTableName() and for checks for table existence.
  • Leave out "_binary" keyword on MSSQL when inserting binary files. Fixes issue #3244.
  • Issue #3212: Introduce TDBConnection.QuotedDbAndTableName(), callable with a db and table string. Internally calls TDBObject.QuotedDbAndTableName(), so we get the schema between db and table if required.
  • Issue #3212: Add basic support for schemas in MSSQL.
  • No background gray for sorted columns any longer. Leads to confusion when mixed with the new alternating row colors. See http://www.heidisql.com/forum.php?t=12882.
  • Include ROW_FORMAT in CREATE code. Fixes issue #3243.
  • Add overlay icons for table engines Blackhole and MergeMyISAM.
  • Add preference option and logic for alternating grid row background colors. Fixes issue #2820.
  • Clear tab filename also if query editor is empty. Fixes issue #3241.
  • Support cancel button in "Run routine" action. Fixes issue #3151.
  • Various variables are int64 or float, for which we have no specific editor other than the string editor. Do not quote these to avoid "Incorrect argument type to variable.." Fixes issue #3153.
  • Issue #1289: Remove menu item as long as synchronize dialog is not fully implemented.
  • Include net type in server statistics call, so we can distinct between MySQL and MSSQL usage.
  • Support editing DEFINER clause in scheduled event editor. Fixes issue #2548.
  • Refresh CREATE CODE after pressing Save button on table editor, so we don't display no longer present indexes, and probably more. Fixes issue #3198.
  • Call ValidateControls() after pressing last or end button. Fixes issue #3234.
  • Remove default length of new INT columns in table editor. Fixes issue #3226.
  • Issue #3215: Adjust date/time values converted from UNIX timestamps to use UTC time instead of local time.
  • Set minimum height of listColumns in table editor. Works around AV mentioned in issue #3189.
  • Display values in grid columns which the user explicitly sets to be a UNIX timestamp in date/time format. Fixes issue #3215.
  • Fix disabled "clear" button after adding AND filter in data tab.
  • Append instead of overwrite data grid filter when user has Shift pressed. Fixes issue #865.
  • Fix broken Unicode characters in MSSQL, data grid. Fixes issue #2873.
  • Fix detection of text column types in MSSQL, so TEXT and NTEXT do not appear as numbers in query results.
  • Process placeholders in filename also in grid export dialog. Provide a list of valid placeholders below the recent files pulldown menu.
  • Join the two error message snippets with a linefeed, not a space, so that gets more readable.
  • Apply system font to forms, not only Segeo on Vista and above. Fixes issue #3204.
  • Use additional EOleException message in GetLastError.
  • Extend detection of requirement to name resolving in user manager, to allow netmasks. Also, "localhost" is no longer auto-resolved via libmysql.dll. Fixes issue #3205.
  • MSSQL: Escape joker chars in conjunction with an "ESCAPE" appendix after the LIKE clause.
  • MSSQL wants single quotes escaped with a second single quote, not with a backslash. No clue how to escape joker chars in a WHERE clause.
  • Issue #3191: Use some standard TActions to implement a simple search/replace dialog in the popup text editor.
  • Insert/update NVARCHAR/NTEXT/NCHAR contents with preceding "N", as MSSQL wants Unicode strings handled this way. See issue #2873.
  • Put session name into caption of login-on-demand dialog, so applications like Keepass can identify it. Fixes issue #3180.
  • Do not restore previous state of checkbox options "Drop database" and "Drop tables", leave them off when calling the export sql dialog. Fixes issue #3197.
  • Leave SQL help action disabled as long as there is no selected connection. Fixes issue #3200. Introduce server specific quote characters, so ParseTableStructure() and DeQuoteIdent() do not remove too much.

New in Portable HeidiSQL 8.0.0.4396 (May 20, 2013)

  • Modify installer sidebar image for the next release.

New in Portable HeidiSQL 7.0.0.4053 (Feb 13, 2012)

  • Basic support for Microsoft SQL Server, allowing to execute queries, edit grid data and to do a data-only export
  • Introduce a separate dialog for all grid export actions, allowing to set up various options before file is created
  • Threaded query execution, including a button to stop long running queries
  • Enhanced completion proposal
  • Grid editing support for binary primary keys
  • Implement multi statements in one go for query tabs, to speed up large scripts with many single queries
  • User manager: Random password proposals in dropdown menus
  • User manager: Support account resource limits
  • User manager: Support SSL settings
  • Support pluggable authentication on MariaDB 5.2 and MySQL 5.5.7
  • Indicate MariaDB and Percona Server with appropriate icons
  • Support virtual columns on MariaDB
  • File import dialog rewritten
  • Session list now resizable instead of auto-sized
  • Finally fix NULL-error for FOREIGN_KEY_CHECKS in SQL export
  • Support "tabs to spaces" in query editor
  • Paint Windows 7 taskbutton progress bar e.g. when executing multiple queries
  • Show application screen in Windows 7 Flip3D
  • Fetch original SQL code in VIEW editor
  • Several fixes for Wine usage
  • Support BIT fields in grids and export output
  • Fix window placement problems due to multi monitor setup
  • Fix flicker on status bar
  • Add right click option to toggle visibility of horizontal scrollbar in SQL log (this is for David)

New in Portable HeidiSQL 5.0.0.3272 (Feb 13, 2012)

  • New feature: Editor for scheduled events on MySQL 5.1+ servers
  • New feature: "Databases" sub tab on "Host" tab. Displays number or tables, procedures etc of each db, plus the last update date and default collation.
  • New feature: When editing contents of a InnoDB table which has a foreign key, the relevant cell displays a lookup pulldown menu with the first available text column of the foreign table
  • New feature: Call stored procedures and functions from context menu. Parameter input is prompted.
  • Bugfix: Startup errors on multi-monitor set ups, reading some non existant registry value.
  • Bugfix: Startup errors in portable mode ("List index out of bounds")
  • Bugfix: Quote collation value in table editor, so "binary" does not cause SQL errors
  • Bugfix: Reset selection of database objects in table tools dialog when opening the dialog for the second time
  • Enhancement: More settings for SSH tunnel (SSH host, port, key file)
  • Bugfix: Exit plink.exe when MySQL login was unsuccessful

New in Portable HeidiSQL 4.0 (Feb 13, 2012)

  • Completely rewritten user manager
  • New grid and popup editors for text, blobs, date/time, set, and enum
  • New editor for VIEWs
  • New editor for stored procedures and functions
  • Customizable colors for grid cells, according to data type
  • Direct SQL export from grids
  • Enhanced Vista style and new, stylish icons
  • Unicode support for international characters in grids, SQL queries, CSV export etc
  • Lots of performance improvements
  • Many (approximately 500) bugs fixed