@ansgarbecker ansgarbecker released this Dec 19, 2017 · 142 commits to master since this release

Assets 2

This is a bugfix release with a few new features and enhancements.

Grab it from the download page


@ansgarbecker ansgarbecker released this Nov 2, 2017 · 211 commits to master since this release

Assets 2

This is a maintenance release with quite some additional new features and enhancements.

  • New features:

    • Introduce GUI font preferences setting, so the user can customize the font of all dialogs and forms
    • Add a "clear" button to the both db+table filter textboxes.
    • Make insertion of node text on double click customizable, per tree style options menu
    • Make brace matching color customizable, via Tools > Preferences > SQL.
    • Add menu item "Run SQL file", as a complement to "Load SQL files".
    • Set font size per Ctrl + mousewheel in any grid view.
    • Add new "Options" dropdown button on SQL export dialog, and two new true/false settings: "Add comments" and "Remove auto_increment clauses".
    • Support procedures and functions in "Find text on server" dialog.
    • Support inline valued functions on MSSQL.
    • Make keep-alive-interval customizable in "Advanced" tab on session manager.
    • Display UTC date/time in 5th status bar panel.
    • Add "SQL DELETEs/INSERTs" to grid export formats.
    • Display the version of libpq.dll in the status bar's balloon hint with server details, using PQlibVersion().
    • Support wildcard options in "Find text on server" dialog in a new drop down box, to provide a possibility to find exact matches.
    • MySQL/MariaDB: Implement support for expired passwords. Show a change-password dialog after the very first query of a connection when it returns "Error 1820: You must SET PASSWORD before executing this statement".
    • Support Windows authentication via command line parameter W or winauth.
    • Accept SSL session settings as command line parameters. See http://www.heidisql.com/help.php#commandline for details.
    • Add some hotkeys for focusing table filter, database tree and main tabs. Also, add a new main menu with these actions, so the user can look up these hotkeys.
  • Enhancements:

    • Prefetch mass queries fired for each object in a database
    • Support MSSQL's XML data type, and do not cast it to VARCHAR in data grid
    • Increase size of analyzed text file chunk from 100K to 1M, in DetectEncoding(), so it fails less often to see encoding relevant characters
    • Add various missing translation strings
    • Detect table and its alias when using UPDATE/INSERT IGNORE
    • Display column comments on MSSQL
    • Add basic support for MySQL's new JSON data type.
    • Add new MySQL internally used date/time data types.
    • Internally handle MySQL's native column types in an enumeration, not as constants. See mysql.h.pp in the MySQL server code.
    • Add virtual column syntax for MySQL, which seems to differ slightly from the MariaDB implementation.
    • User manager: Allow double quotes in SHOW GRANTS output, to support ANSI mode.
    • Translate SynEdit shortcut captions.
    • Increase width of shortcut tree, so new translations have enough room.
    • Update SynEdit component
    • Remember size of completion proposal between sessions.
    • Rephrase confirmation message for running unsafe queries.
    • Do not quote column names when not required in SELECT query for data grid.
    • Add some new lines in SQL export, especially when "Add comments" is disabled
    • Try to show tooltip when columns in database tree are too narrow to show the full text.
    • Format byte numbers so that we never get a thousands separator in it.
    • Use a better fitting icon for the browse-file button in SQL export dialog.
    • Warn if export output filename contains illegal characters, which TFileStream.Create does not catch for some reason.
    • Do not check existence of IS.routines before querying it.
    • Remember selected encoding in several file-open-dialogs.
    • Use an exact comparison in multi-column filters for some PostgreSQL data types to overcome SQL errors, e.g. UUID, INT etc. Also, prevent other errors by matching the value against a certain regular expression. If it does not match, leave this column away.
    • Update all PostgreSQL libraries
    • Add splitter on procedure editor.
    • Set each procedure parameter on its own line, and remove some tabs.
    • Display number of sorted columns on "Sorting" button.
    • Display number of selected columns besides available columns on "Columns" button in "Data" tab.
    • Add new item "Logging preferences" to context menu in SQL log panel
    • Preferences: Add checkbox for "Horizontal scrollbar" in Logging tab.
    • Preferences: Give each tab an individual icon, and use flat button style for tabs.
    • Display network type in tooltip over server status panel.
    • Cosmetics in session manager: Rearrange and resize labels in statistics tab.
    • Cosmetics: Make status bar panel for server version a bit wider.
    • Update Transifex command line client to 0.12.1.
    • Add client plugin for MariaDB's GSSAPI authentication, basically Windows authentication.
    • Move some menu items for configuring data grids into a new submenu labelled "Grid view options"
    • Create a duplicated menu item there, for "View binary data as text" button from the main toolbar
    • Create a new menu item there, for jumping to the "Data" tab in the preferences window
    • Add related translation strings
    • Move plink.exe path to lpCommandLine parameter instead of passing it as lpApplicationName. This way, a folderless plink.exe call should use the first available one from the path environment.
    • Support multiple objects selected in user manager > add object.
    • Clear contents of filter boxes when pressing Esc key.
    • Support all integer and real data types for displaying as Unix timestamp.
    • Support session name in placeholders for filename.
  • Bugfixes:

    • Non functional bind parameter detection
    • Use db.func instead of schema.func when schema is empty, on retrieving MSSQL routine structure
    • MSSQL: Fix broken query for altering column comment via table editor
    • A yes/no message dialog may also return mrCancel, when the user clicks the X button to close it. Handle this case as if the user clicked "no", when HeidiSQL detects an unsafe query.
    • Fix endless loop in retrieval of column comments on MSSQL.
    • Fix order in table column parsing, so that collation is expected before a virtual expression
    • Fix non-working detection of indexes on PostgreSQL pre-9.0 servers
    • Postpone repaint of the data grid to later, after click on a header column with a bad WHERE filter. Fixes a crash in VirtualTree, when handling the click somewhere.
    • Fix position of horizontal splitter on second and successive query tabs.
    • MSSQL: Set textsize to a large value, so the view editor does not load partial code only.
    • Use a reasonable default height for the query editor, to prevent a splitter problem.
    • Prevent various problems with alignment of controls.
    • Fix duplication of query tab controls, when it comes to aligning the query helpers tree.
    • Fix crash when opening completion proposal with only views in a database.
    • Ignore surrounding parentheses when detecting table aliases for completion proposal.
    • Table designer: Do not allow an empty length/set for data types which require one.
    • Slightly increase auto-calculated width of size column in database tree, so it does not use ellipses on wider texts, e.g. "1.023 KiB"
    • In SQL dumps, make "SET NAMES utf8mb4" a version conditional statement for the minimum MySQL version supporting that charset.
    • Implement TPGQuery.TableName, so exporting grid rows get a table name when needed. E.g. for output format "SQL Inserts".
    • Allow tab after double dash comment in SQL highlighter.
    • Fix detection of virtual columns without "GENERATED ALWAYS" clause.
    • Fix unquoted and uncleaned numeric values in data grid updates and inserts.
    • Fix bug in TAdoDBQuery.TableName when multiple queries were executed.
    • Use an exact comparison for PostgreSQL's BOOLEAN datatype.
    • Fix multi column filter concatenated without OR after linebreak.
    • MSSQL: Work around multiple results from a single query, in case of a stored procedure for example.
    • Fill SSL command line parameters only if not empty in HeidiSQL session.
    • Overcome 4000 character limit in IS.VIEW_DEFINITION.
    • Use b'' format only for BIT columns in MySQL only.
    • Fix "Database(s)" string split by space characters. Allow semicolon only.
    • Fix wrong FLOAT data type mapping between DB.TFieldType and TDBDatatypeIndex, in TAdoDBQuery.Execute.
    • Do not complain about empty password when SHOW GRANTS output does not include the IDENTIFIED BY clause on MySQL 5.7.6+.
    • Rewind result set for column comments before iterating over it, as it's an inner loop.
    • Trim database names when passed as semicolon separated list.
    • Use exact text data types instead of their whole category for detecting special binary columns. Fixes unquoted JSON content in SQL exports.
    • Fix slow highlighter when TableNames contains several 1000's of strings. Removes limitation to 1000 table names for highlighting.
    • Fix crash when showing hint (animation) on grid cells with large text portions.
    • Catch exception when clicking "Cancel running operation" and the KILL command cannot be executed.

@ansgarbecker ansgarbecker released this Nov 2, 2017 · 352 commits to master since this release

Assets 2

This is a maintenance release which contains mainly bugfixes.

  • Bugfixes:

    • Crash in foreign key dropdown editor
    • Crash when killing processes on very long running servers
    • SQL error when accessing UUID and JSON columns in PostgreSQL via SUBSTR
    • MSSQL: Prefer "schema.table" quoting over "schema"."table" when renaming a table
    • 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
    • MSSQL: Do not pass "Database=xyz" to connection string if database(s) setting contains more than one database
    • MSSQL: Try to use some universal date/time format, by injecting a "T" between the date and the time portion
    • Fix wrong detection of BIT default values
    • Use "SET search_path TO db" instead of "SET SCHEMA db" for changing a database in PostgreSQL, for downward compatibility reasons
    • Prepend 'E' to escaped PostgreSQL strings
    • Use updated URL for MariaDB Explain analyzer, and encode semicolon in URL parameter
    • User manager: Select "authentication_string" instead of "password" column on MySQL 5.7.6+
    • Fix various selection bugs in column selection panel
    • Fix SQL error in "Copy table" dialog, in PostgreSQL mode. Use lowercase table and column names in IS.TABLES, so PG can find them
    • CSV import: Disable features supported in MySQL only, if active connection is not MySQL
    • PostgreSQL: Always keep public schema in search path, so one can use procedures from it without prefixing
    • Text import: Use very last value from last row, even if it's not followed by a field or line terminator
    • PostgreSQL: Fix wrong ALTER TABLE query for modifying table comment
    • Update VirtualTree component code to v6.1.0, to fix graphical issues in Windows 8 + 10
  • Enhancements:

    • Show error when SSH port is already in use
    • Add support for PostgreSQL's data types uuid, cidr, inet and macaddr
    • Strip folder path from various file settings, including plink.exe location, if it's the application directory
    • Try higher ports, up to the 20 next ones, as SSH local port, when the configured one is in use
    • Display session name in caption of all message dialogs
    • Add a custom icon for confirmation dialogs, with a question mark on it, so we don't have to use the "i" icon.
    • Use server time for data grid > "Insert value" menu items
    • Show line breaks other than Windows style as normal line breaks in text editor
  • New features:

    • Introduce option for setting the line break style in text cells without breaks
    • Session manager: Add support for SSL cipher, and add various texthints

@ansgarbecker ansgarbecker released this Nov 2, 2017 · 389 commits to master since this release

Assets 2

This is a new release with some new features and many bugfixes and enhancements.

  • New features:

    • Add support for JSON grid export
    • Add support for Markdown Here grid export
    • Support new command line parameter "n", or "nettype", which takes an integer, representing the protocol number (0=mysql tcpip, ...).
    • Add support for connecting to Microsoft Azure Servers
    • Add edit box + updown buttons for limiting the size of exported INSERT queries in bytes.
    • Display creation time, last alter time, comment and start time of scheduled events.
    • Online help document available. Various "Help" buttons in relevant dialogs link to this document.
  • Bugfixes

    • Dropping functions and procedures on PostgreSQL now with required parameters list
    • Size bars in "Database" tab on PostgreSQL now with correct values
    • Loading full grid data on PostgreSQL did not work on text columns
    • Fix microseconds in MSSQL date/time data types, hidden in data and query grids.
    • Use ISO 8601 date/time format on MSSQL
    • PostgreSQL: Fix wrong order of columns shown in indexes, and show normal indexes also
    • Do not uppercase ENUM values in procedure parameter datatypes
    • Fix crash when right-clicking a database, following by a click on "Drop"
    • Version conditional disabling for "Create new" menu items in MySQL mode only
    • TEXT data type has a maximum length of 65k for MySQL only. Introduce other values for MSSQL and PostgreSQL.
    • Fix memory leak in TfrmTableTools.SaveSettings
    • Let longer data type matches win over shorter ones, especially important on PostgreSQL
    • Make TPGConnection.FetchDbObjects compatible to pre-9.0 servers on PostgreSQL
    • Fix non working addition of new columns in MySQL
    • Detect xid type (oid 28) as integer.
    • Detect character type (oid 1042) as char, not varchar.
    • Detect aclitem[] type (oid 1034) as unknown, not text.
    • Fix detection of PostgreSQL data type INTERVAL as VARCHAR.
  • Enhancements:

    • Automatic storing of settings in portable mode
    • Optimize query for getting total row count on PostgreSQL
    • Add support for microsecond precision of MSSQL date/time types in table editor, show these in "Length/Set" column
    • Add a help button to the quite non-intuitive controls on the export dialog
    • Add support for JSON data type on PostgreSQL
    • Add support for HIERARCHYID data type on MSSQL
    • Increase various default values for window dimensions, for reasonable look and feel for new users
    • Add "Rename" context menu item in session tree.
    • Use local number formatting in grids by default
    • Use transparent background for NULL cells by default
    • Support columns with a string literal as default value plus an ON UPDATE CURRENT_TIMESTAMP clause.
    • Increase compatibility when getting procedure body on MSSQL.
    • Remove duplicates from recent file list pulldown.
    • Translate connected/disconnected words in status bar
    • Set focus on filter box when SQL help dialog opens.
    • Update gettext unit
    • Make search/replace dialog resizable
    • Activate "Clear filter" button after applying text to filter memo.
    • 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.
    • Use existing data grid WHERE filter to filter values from quick filter > "More values".
    • Remove outdated details in readme file, and redirect to official help page instead.
    • Detect all array style types on PostgreSQL as unknown type, e.g. TEXT[].
    • Pass column or argument name to NativeToNamedColumnType(), as a hint for the user.
    • Support quoted datatypes in TDBConnection.GetDatatypeByName, coming from TDBConnection.ParseTableStructure

@ansgarbecker ansgarbecker released this Nov 2, 2017 · 468 commits to master since this release

Assets 2

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


@ansgarbecker ansgarbecker released this Nov 2, 2017 · 470 commits to master since this release

Assets 2

I'm proud to announce a new release with quite a few new things and tons of bugfixes.
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.

... and for the nerds: the entire changelog