Version History - 2009

SQLyog 8.2 (December 2009)

  • Features

    -- Added a 'Schema Optimizer' feature. Based on "procedure analyse()" it will propose alterations to data types for a table based on analysis on what data are stored in the table. The feature is available from INFO tab/HTML mode. Refer to documentation for details.
    -- A table can now be added to Query Builder canvas multiple times. A table alias is automatically generated for second and higher instance of the table. This is required for special queries like self-JOINs (note: table alias support in Query Builder is an ongoing process).
    -- In the 'Import External Data' wizard same import settings can now be applied to all tables in one operation.
    -- In MESSAGES tab we are now displaying the query if error occurs during execution in order to make it easier to identify what query raised an error when executing multiple statements.

  • Bug Fixes

    -- 'Import External Data Tool' -TRIGGERS did not use the Primary Key for the WHERE-clause if a PK existed on source (all columns were used with the WHERE instead). This could cause problems with tables having Floating Point data.
    -- A malformed XML-string could cause failure to connect with HTTP tunneling. This was a rare issue only.
    -- After DROP a 'stored program' followed by CREATE same, Autocomplete would not recognize the 'stored program' unless after a program restart.
    -- 'duplicate table' has an option to duplicate triggers defined ON that table, but the way we named the new trigger could cause inconsistencies. Now the new trigger will be named 'oldtriggername_newtablename'.
    -- Autocomplete was not functional with names of Triggers and Events.
    -- In MESSAGES tab font could change if non-ASCII characters were displayed.
    -- ALTER TABLE failed to rename a column when old and new column name only differed by letter-case. Actually the dialogue just shut down.
    -- A calculation error could cause export tools to create BULK INSERT statements larger than specified by user.
    -- Import External Data Tool will now always map any autoincrement type from ODBC sources to a MySQL autoincrement integer. Before this datatypes that could autoincrement on source but not in MySQL (example a SQL Server 'decimal autoincrement') failed to import.
    -- Now Import External Data Tool will convert SQL Server 'GETDATE()' to MySQL 'now()'. Before this an error occurred at import with GETDATE()'s.
    -- Fixed a Object Browser flickering issue when refreshing.

  • Packaging and licensing

    -- The licensing scheme for SQLyog has changed: there is now the free Community version (unchanged) and 3 different commercial licensing models: Professional, Enterprise and Ultimate.
    -- TRIAL now has ULTIMATE features with the exception that there is a restriction on how many tables and other objects can be handled in a single SJA job (similar to what was previously the case with ENTERPRISE TRIAL).

SQLyog 8.18 (November 2009)

  • Bug Fixes

    -- Schema Sync failed to set the auto-increment flag when syncing a table having this flag to a table not having. This bug was introduced in 8.13.
    -- SMTP authentication and notification could fail with passwords having special characters.
    -- Solved a crash with Query builder while creating VIEWs.
    -- INFO tab/HTML format was showing incorrect value for table's data size having values in Gigabytes.
    --The display of the optimized query from EXPLAIN EXTENDED is now truncated to 2 KB. With long BLOB/TEXT data there will need to be some limit.
    -- Schema Sync will now query Information_Schema for a VIEW definition. MySQL sometimes returns 'databasename.viewname' and not just 'viewname' when using SHOW CREATE .
    -- The fix in 8.15 for the issue that Windows Vista and higher could warn that SQLyog was not properly installed was not complete. It could still happen.

SQLyog 8.17 (October 2009)

  • Bug Fixes

    -- When connected to a 5.0 server compiled without PROFILING option and with Query Profiler/SHOW PROFILE feature enabled SQLyog would still send PROFILING-related queries. It was not properly detected that the server did not support this. MySQL versions from 5.1 and up (also when compiled without PROFILING option) were not affected
    -- In DATA and RESULT tabs/text mode unicode/non-ASCII characters could cause a change of the font that was used for displaying data. This was an old bug from when introducing full unicode support in 6.0.
    -- In RESULT tab BLOB/TEXT data would sometimes not display beginning of data in GRID. This bug was introduced in 8.15.

  • Miscellaneous:

    -- EXPLAIN EXTENDED option is now disabled as default in Query Profiler.

SQLyog 8.16 (October 2009)

  • Bug Fixes

    -- Exports as Excel-XML was broken in 8.15 . Empty strings and ZERO's occurred instead of data.
    -- 'Search and replace' could truncate the result. Also this bug was introduced in 8.15.

  • Miscellaneous:

    -- SQLyog Application Manifest was updated to return version information.

SQLyog 8.15 (October 2009)

  • Features

    -- Added an option to execute SHOW WARNINGS automatically if the 'warning-count' is not 0. The output will appear in MESSAGES tab. Note: this is not implemented for HTTP-tunneling.
    -- Improved the memory handling in GRIDS with BLOB/TEXT columns. This fixes some slugginess when scrolling a GRID containing such data.

  • Bug Fixes

    -- A dump containing VIEWs created on an early 5.0-server could fail to restore on recent servers. The underlying reason is a bug with the 'default' column in the output of SHOW FULL FIELDS on the early 5.0 servers. But we can aviod using this information and this is what we did now.
    -- Copy database/table from a 3.x or 4.0 server to a more recent server failed with column names containing special characters.
    -- If a sqlyog.ini files exists in installation folder it should be copied to 'AppData' folder. This is required for upgrading from versions before 6.06. However with latest releases an empty file was created in 'AppData'.
    -- The 'Import External Data Tool' could truncate strings when importing data from a 4D database. It is actually a bug in the 4D ODBC driver but we found a workaround.
    -- SSL-connections failed if authentication keys were created with cipher option.
    -- SQL-exports generated

  • for MERGE and FEDERATED tables.
    -- In INFO-tab/text-mode we will now not highlight 'string literals'. A comment with an odd number of quotes would make following lines display with 'string literal' highlighting/coloring.
    -- When connected with SSH-tuneling to a Windows machine with Cygwin SSHD the bash.exe process created for each connection did not close again.
    -- CREATE TABLE... advanced options did not set some create-options to 'default'.-- Execution of some queries would be slow with Query profiler/EXPLAIN extended selected. Most important queries with a UNION were affected. Technically it was an issue with the Query Formatter code and how it 'hooked'into the program. This bug was introduced in 8.0.
    -- Windows Vista and higher could warn that SQLyog was not properly installed due to lack of an Application Manifest. It was false alarm but now such Manifest is included with the installer.
  • Miscellaneous:

    -- Functionality change: Before this release we stripped out the database name from Stored Program and View SQL-code when generating SQL-dumps and when copying a database to another host. Also Schema Sync did with VIEWs. This was in order to make it easy to import/copy to another database. However with tables named identical to the database and when database names was a substring of a table name it failed sometimes. We realize now that SQL code inside Stored Programs and Views may be so complex that parsing for the database name and stripping it is not safe. With this release we have stopped this 'stripping' and Stored Programs and Views will be dumped by SQLyog identically to what 'mysqldump' does.

SQLyog 8.14 (August 2009)

  • Bug Fixes

    -- When backing up a VIEW a temporary table was created on <source>. That could fail if user did not have TMP_TABLE privilege or if the table violated server or storage engine restrictions for tables (but note that we still write statements that create and later drop a 'dummy' table when restoring, as this is the only safe way to backup/restore VIEWS defined on VIEWS).
    --When updating from GRID's SQLyog sends a SHOW CREATE TABLE to ensure that table definition has not changed. But incomplete syntax was used ("SHOW CREATE TABLE `table`" - not "SHOW CREATE TABLE `database`.`table`"). With the new reconnect implementation in 8.13 that could raise the error 'no database selected' after a reconnect.

SQLyog 8.13 (August 2009)

  • Features

    -- SQLyog can be started with a '-dir' switch like "SQLyogENT -dir somefolder". This dir switch specifies where SQLyog will look for the sqlyog.ini file and where all writeable files will be saved. This was implemented for users that want to have all SQLyog-related files on a removable drive or some kind of encrypted storage. Note that if you use the setting in 'preferences' to store TAGS file some specific place the 'preferences' setting will still have effect, also if the -dir switch is used.
    -- Improved/rearranged the GRIDS in Data Sync and Import External Data wizards.
    -- SJA mail functionality now supports SSL/TLS encryption. This applies to SJA for Linux and SJA for Windows running on Windows, but not SJA for Windows running on Wine, as we did not find any way to access encryption functionalities from Wine.
    -- ALTER VIEW will now format the SELECT-part of the VIEW definition.
    -- Now all batch jobs will not generate BULK INSERTS larger than 16MB (like already implemented in Import External Data in 8.11).
    -- In CREATE/ALTER TABLE the charset and collation columns can now be hidden for better overview (most users never use it).
    -- When updating from DATA or RESULT grid the UPDATE statement will now only list columns that were changed. That results in more readable statements and may also improve performance with 'wide' tables and tables with large BLOB/TEXT columns.
    -- As a consequence of the above the restriction, that a grid containing spatial or binary data could not be updated, has been lifted (but such columns themselves still cannot be updated from the grid).
    -- Added an option to perform backups in a single transaction (similar to 'mysqldump' "–single-transaction" option).
    -- The connection manager has been redesigned to allow for longer connection names. Also the '…' button was renamed to 'rename' (what was what it always did).
    -- Added support for MySQL compressed protocol in both SQLyog GUI and SJA.
    -- Added an option for user to specify the timeout setting for the session (note: it will work with MySQL 4.1 and up only as earlier versions do not support SESSION variables).
    -- Now SQLyog logs to the sqlyog.err file if memory allocation fails with string manipulation (for example when handling blob/text data where a single value may be larger than available memory).
    -- Version parameter was added to SJA. You can now execute "sja –-version" or "sja -v" and version will be returned. Before only the file size could be used to detect the SJA version.
    -- Now full GUI support for all charsets added to MySQL after 5.1. Everywhere SQLyog presents user for a list of available charsets and collations the server will be queried about this information. Before it was not like that everywhere!
    -- If the custom size for bulk insert in 'preferences' is greater than server default, then SQLyog will use the server default for generating BULK INSERT statements. Users overlooked/forgot that they had specified a setting. As a result backups that would not restore on same server could occur. Also now user specification is restricted to 5 digits (what means it will have be less than 100 MB).
    -- The various options available for backups have been reorganized in GUI to make it more clear what options have effect on the source server while backup job is running and what options are options that are written to the file.
    -- A new query tab can now be opened by double-clicking in the unused space to the right of existing open tabs.

  • Bug Fixes

    -- Edit menu showed F5 for both Refresh and Execute Query.
    -- Autocapitalisation settings had effect where they should not. It has now been disabled in MESSAGES tab and in the error dialogue.
    -- Various places a horizontal scrollbar displayed where it was not required.
    -- Fixed wrong behavior with GRID scrollbar after resize.
    -- ALTER TABLE dialogue executed SHOW TABLE STATUS with no LIKE-clause. That could be slow with a large number of big InnoDB tables in a database.
    -- PROFILER tab sometimes did not show after executing multiple queries.
    -- After doing FILTER in DATA tab, LIMIT would be reset to previous value.
    -- Non-column results (like functions, expressions etc.) were affected by column-width persistence feature what they should not (it had weird effects sometimes).
    -- A 'duplicate key' error would occur with batch jobs (including Data Sync) if an autoincrement column had a '0' value. We now set 'NO_AUTO_VALUE_ON_ZERO' sql_mode for batch jobs.
    -- On Wine F8 keyboard shortcut was only functional after executing a query.
    -- When copy database/table from a MySQL server 5.1 or higher to a 3.x or 4.0 server timestamps with ON UPDATE-clause caused a syntax error as ON UPDATE is not valid on such target. There was no issue when source was 5.0 as we transform the CREATE statement. But the condition had a bug so it did not work with 5.1+ .
    -- It was not possible to enter an empty string in the GUI for ENUM/SET management.
    -- When queries were inserted from 'edit .. Paste SQL statements' menu the tokenizer editor component could fail to identify exactly where a statement started and stopped. Reason was that the tokenizer expects Windows linebreaks (\r\n) but templates contained Unix linebreaks (\n):
    -- SQLyog could fail to save properly from RESULT tab if PK-column(s) were not displayed in GRID (an incorrect WHERE-clause was generated). This bug was introduced in 8.1.
    -- Data Sync could throw an incorrect 'AUTO INCREMENT definition mismatch' error for data types (like TIMESTAMP type) where auto-increment does not apply with specific schemas. Also this bug affected Schema Sync.
    -- Fixed a crash in Scheduled Backup.
    -- Emptying a database rendered Autocomplete non-functional for the session. .
    -- A scheduled SJA job raised an internal error code in the Windows scheduler. It had no effect on the job as such (queries were executed, mails were sent), but various monitoring tools for Windows servers would raise an alert.
    -- Fixed an issue with Schema Sync if the same 'stored program' was formatted differently on source and target. Target was not always synced properly and SS would detect differences forever.
    -- On Wine Data Sync could pop up a message that SJA had crashed. But actually it only crashed after user clicked OK in the dialogue.
    -- If user did not have SELECT privilege to the `mysql`.`proc` table ALTER STORED PROCEDURE/FUNCTION failed silently. Actually nothing happened. Now we return an error.
    -- 'reorder columns' threw away '' (empty string) DEFAULTs for string columns.
    -- When data were changed in GRIDs and the GRID-curser was moved to another row of the GRID by right-clicking in a cell of another row of the GRID, no UPDATE statement was sent (left-click and arrow-down key worked as expected).
    -- With low wait_timeout setting on <target> it could happen that Data Sync took more time than this setting to prepare a BULK INSERT statement. Connection to <target> would be lost and sync not completed. We now SET wait_timeout = 28800 in Data Sync. Also 'restore from SQL dump' will now do the same.
    -- Mails sent by SJA could truncate a HTML tag for background color. 'white' would become 'hite'. The display with specific email clients was unpredictable.
    -- When data sync used the option to generate a sync script the sja.log displayed ZERO's for inserted, updated and deleted rows. Now the log will display what was written to the script instead.
    -- When a routine body contained empty lines, Schema Sync would sometimes not sync such empty lines properly. Schema Sync would then detect differences forever.
    -- In INFO tab/HTML View empty lines in a routine body could be 'stripped out'.
    -- 'copy database' failed to copy triggers when selecting only triggers for copy'.
    -- In various error dialogues we will now truncate query strings to 2 KB. Before there was no limit'.
    -- SSH-tunneling failed with the "FreeSSHD" SSH-implementaton for Windows.

  • Miscellaneous

    -- SQLyog reconnects are now coded differently (now the MySQL API reconnect option is used - before it was our own code). The new code means that with SSH-tunnel it will now not be necessary to re-instantiate PLINK (the running PLINK instance will be used). As a consequence SQLyog will now not log to HISTORY when SQLyog reconnected in most situations. However a PLINK<->SSHD reconnect will still be logged always.

SQLyog 8.12 (June 2009)

  • Bug Fixes

    -- Backups did not `backquote` identifiers inside the columns-list of an INSERT statement (ie. “INSERT .. (col1, col2) VALUES ..” instead of “INSERT .. (`col1`, `col2`) VALUES..”). If specific (but not all) keywords were used for naming a column, backups would not restore. This bug was introduced in 8.1.
    -- A sync script generated with Data Sync had INSERT statements duplicated. Also this bug was introduced in 8.1.
    -- Fixed a painting issue when switching between DATA tab and RESULT tab.

SQLyog 8.11 (June 2009)

  • Bug Fixes

    -- A memory corruption could occur when saving a file using 'save as' ('save' was not affected) from the editor. Various issues like painting issues and even a crash could then occur.
    -- Scrolling with mouse scroll-button was not functional in the new GUI for SET/ENUM management.
    -- 'duplicate table' did not duplicate all 'table options' defined for a table - like MAX_ROWS etc. (Also note that Foreign Key CONSTRAINTS are not duplicated either, but that is intentional and not a bug).
    -- Bulk INSERTS generated by Import External Data Tool will now be restricted to 16 MB in size if max_allowed_packet in server configuration is larger than 16 MB. On specific systems/configurations memory issues were reported.

SQLyog 8.1 (June 2009)

  • Features

    -- Added an option to import text/.csv, .xls (Excel) and .mdb (Access) files without using a preconfigured DSN setting (user only need to specify the file and ODBC driver details are passed transparently for user). When using this option also detailed column mapping is possible.
    -- Added an option to 'preview SQL' in CREATE/ALTER TABLE.
    -- OBJECTS tab was renamed to INFO tab. There is now a choice between the (old) text-based display and a new tabular/HTML-based view.
    -- The SELECT-part of a CREATE VIEW statement in INFO tab will now be formatted. Also the 'SQL-preview' in CREATE/ALTER TABLE dialogue will now be formatted.
    -- New GUI for defining ENUM and SET columns in Create/Alter table.
    -- Autocomplete had a complete 'overhaul' resulting in better performance.
    -- Column width in all GRIDs (not only DATA and RESULT tabs) are now persistent.
    -- The caption 'Migration Toolkit' was changed to 'Import External Data' in menus etc.
    -- The session.xml file (used by SJA internally) is now not exposed to users in Wizards. The file is created in user's 'AppData' folder when job is invoked from a Wizard. If invoked from command-line files will be created in the folder where the SJA executable is, if not specified differently from command line. The reason for this change is that the two XML files (jobfile and sessionfile) have frequently been confused by users.
    -- Drastically improved the speed of exports (typically 3-4 times faster) by changing the buffering concpet used internally. This refer to exports as CSV, XML ,HTML, Excel XML and all SQL export/backup options.
    -- The changed buffering concept as described above also was applied to Data Sync. Additionally this release comes with query optimisations of queries used by Data Sync. Fewer queries are needed. As a combined result Data Sync is now much faster than before in particular with remote servers (up to 2-3 times with normal DSL connections).
    -- Added 'scheduled backup' option to Object Browser context menu.
    -- Some reorganisations of menus, improved captions and explanations in dialogues and wizards etc.

  • Bug Fixes

    -- Query Profiler would sometimes fail to display the total time in SHOW PROFILE.
    -- Fixed a painting issue in Schema Designer.
    -- Fixed a program crash in copy database/table.
    -- On Win2K and Wine icons will now be 8 bit color depth, as those environments do not support 32 bit color depth icons properly.
    -- Autocomplete would sometimes erroneously insert a linebreak.
    -- Query Builder could generate SQL with an ambiguous column (not prefixing column name with tablename for a PK-column) if the same column name existed in joined tables. This bug was introduced in 8.03.
    -- When connected to MySQL before 4.1 a string containing special (non-ASCII) characters could be identified as a binary string. Also this bug was introduced in 8.03.
    -- Autocomplete was not functional within the argument-list of a function.
    -- 'empty database' (from the database menu/context menu) caused Autocomplete to become non-functional for the session.
    -- Scheduled backup did not handle the “&” character in file and folder names.
    -- Removed redundant SPACES in CREATE statements. These SPACES could cause formatting to garble when copying (to a web form for instance).
    -- If a file named 'sja' or 'sja.exe' existed in SQLyog 'AppData' folder SJA failed to connect with SSH tunnel. A user reported that such 'shadow copy' was created periodically. Issue is not fully understood (except that Windows looked for PLINK too in 'AppData') but the fix works!
    -- Fixed a scrolling issue in Data Sync GRID.
    -- The templates for ALTER ('stored programs and VIEWS) will now have a "USE db_name" on top. Before the statement could be executed against the wrong database if user changed the database context.
    -- Lots of fixes for small (mostly GUI-related) issues reported internally.

SQLyog 8.05 (April 2009)

  • Features

    -- User Management icon was re-introduced in the Icon Bar.
    -- In DATA and RESULT tab you can now open the BLOB VIEWER for BLOB and TEXT types with any keyboard keystroke (like SPACEBAR). The 'NOT NULL' checkbox will then automatically uncheck (if checked) and BLOB VIEWER window is ready for input from the keyboard without any mouse action.

  • Bug Fixes

    -- SQLyog could crash when retrieving binary data over a HTTP-connection.
    -- Fixed a crash when updating from the RESULT tab (details: a pointer used internally could contain an invalid value).
    -- When multiple reconnects took place in 'copy database/table' with short intervals various issues could occur - including a program crash.
    -- When Schema Sync CREATED a table having a string column with default ” (empty string) the default was not created for that column (it was no problem if the table on <target> existed in advance and was ALTERED).
    -- On MySQL 4.1 and 5.0 SHOW FULL FIELDS does not expose an ON UPDATE CURRENT_TIMESTAMP clause for a TIMESTAMP column . We will now get this information from SHOW CREATE TABLE . The most serious problem before this was that when syncing from 4.1/5.0 to 5.1/6.0 an ON UPDATE CURRENT_TIMESTAMP clause could erroneously be dropped on target..
    -- Also this release contains a large number of GUI-releated fixes including fixes for painting issues and Object Browser issues related fixes. Also the Object Browser fixes in 8.04 introduced new issues that were now also fixed.

SQLyog 8.04 (March 2009)

  • Features

    -- Crash dumps with no information (zero-size) will now be deleted automatically.
    -- When saving/copying from the editor the LETTERCASE modifications for keywords and functions will now be preserved.
    -- Selecting a 'child' object for a table (columns and indexes) will now refresh the DATA tab if DATA tab is open. Before only selecting the table object itself did. Also the table information is now available in OBJECTS tab when a column or index is selected.
    -- Now also a 'key' icon is used for identifying the Primary Key in an Object Browser 'Indexes' folder.
    --When a GRID cell is only partly visible, doubleclicking it will move the grid position so that cell/row will become visible (before it worked like that with singleclick - we changed to doubleclick as this is a de facto standard in such grids - in Excel for instance).
    --The copy database/table dialogue will now display detailed information about number of objects copied.
    -- In 'empty database' added a 'SELECT ALL' option in order to avoid multiple confirmation popups.

  • Bug Fixes

    -- An index defined on more than one column displayed as many time in the Object Browser as the number of columns used for defining the index.
    -- Fixed scrolling issues with the GRIDs.
    -- The GRID of CREATE/ALTER TABLE dialogue required double-click in a cell before pasting into that cell was possible.
    -- Query Builder 'copy query to same query tab' was broken.
    -- Query Formatter would insert Unix linebreaks (\n) instead of windows linebreaks (\r\n) between multiple queries what in turn could result in that the tokenizer/editor would would fail to recognize exactly where a statement started and ended.
    -- In the Schema Sync dialogue the 'compare' button could grey out. This bug was introduced with the 'refresh' option added in 8.03.
    -- The 'include column names' option in CSV-export dialogue (including 'save to clipboard') was not persistent.
    -- Fixed some flickering and repainting issues in Schema Designer in particular as well as other similar small issues elsewhere in the program.
    -- A floating point value displayed in the form ".1234" (no ZERO before the decimal sign) would be exported as integer "1234" with "export as Excel XML". Also NULL values for numerical types could result in a XML file that Excel would not open.
    -- Adding/dropping an index would collapse the 'columns' folder for the table in Object Browser and vice versa.
    -- F6 keyboard shortcut was disabled if focus was on a 'columns' folder in Object Browser.
    -- When using "copy database" and an error occurred while copying a 'stored program' the copy proces would not abort on error. Instead next object was copied or attempted copied. This has been changed so that behaviour with 'stored programs' is the same as with tables.
    -- When clicking the database dropdown in the connection manager of SJA wizards the mouse pointer did not change to an 'wait state' pointer while list of databases was fetched from the server, what could give user an impression of SQLyog 'hanging'.
    -- Progress bar improvement with “Export as SQL dump” and “Restore from SQL dump”. Also progress information with files larger than 4 GB displayed wrong due to 32 bit integer overflow. Now a 64 bit integer is used.
    -- Lots of small fixes reported internally and by users.

  • Functionality changed

    -- We will now not UPDATE a row of data from DATA or RESULT tab if any of the columns displayed for the actual row contains data identified as binary data by containing a NULL byte ('\0' in C-notation) no matter whether this occurs for binary, varbinary, char or varchar types. Instead an error message will print (reason for this: the UPDATE operation would store what was displayed - not the underlying binary data causing the display).
    -- The arrow icons displaying in column headers of the DATA grid indicating sorting state have been replaced/reverted to conform with de-facto standards.

SQLyog 8.03 (March 2009)

  • Features

    -- New major feature: column width persistence in GRIDs. Once you have defined a column width for a combination of database/table/column the defined column width will always be used. Note that connection details are not used for identifying columns with this new functionality so with replicated and identically named synchronized databases it is sufficient to define in one place. Alias'ed columns in results are handled by the column name and not the alias. Non-column results (like constants, results of expressions/functions, returns of SHOW etc.) are not supported currently. The feature can be turned on/off. Note that if both this new option and the old "Truncate column headers … " is checked in program 'preferences' the "Truncate..." option will be 'overriden' by the new column width persistence feature.
    -- Resizing columns in GRID was made easier. A 'zone' around the column splitter and not only the splitter line itself will now accept the mouse event.
    -- 'Find' dialogue will now remember last used values.
    -- Added an option to open a file in a new tab (Editor tab and Schema Designer tab).
    -- Added an option to use 'hard SPACES' for tabulation in the editor (with this checked the code will display identically when copied to other programs).
    -- In editor you can now start typing a query in any position and <ENTER> will position cursor in same position of the next line.
    -- Added 'view data' option to the context menu of a VIEW.
    -- In Query Builder PK-columns are now marked with a (beginning) '*'.
    -- In Object Browser introduced a new 'key' icon for PK-columns.
    -- 'Find' was implemented in BLOB viewer. Currently there is only the Ctrl+F shortcut to do this and no other GUI option (no button or whatever).
    -- In Schema Sync added a 'refresh' option in the dropdowns for <source> and <target> databases.
    -- The program dialogues for SHOW variables/processlist/status, SHOW warnings with CSV-import and Table Advanced Properties are now resizable.

  • Bug Fixes

    -- Fixed an issue where SQLyog failed to SET NAMES when reconnecting.
    -- Exporting floating point data as Excel XML could truncate data.
    -- Quite a lot of fixes for (mostly cosmetical) GUI issues.
    -- Fixed some 'flickering' issues.
    -- Double clicking in the GRID could cause the GRID position to move.
    -- Fixed a bug with detection of encoded strings stored in BLOBs (This was introduced in 8.0 - and it is still recommended to use TEXT types for encoded strings).

  • Miscellaneous

    -- For 16×16 icons we now use the icons from before 8.0. The new icons had too many details for this resolution. Also now users that prefer the old icons can have them!
    -- A restriction on the file size to be loaded into the editor (introduced in 7.12) was enlarged from 2 MB to 20 MB. A warning will now print if size is exceeded (but also note that there is no such restriction when importing external files (from tools .. restore ..)).

SQLyog 8.02 (February 2009)

  • Features

    -- Both SQLyog and SJA will now detect if Base64 encoding is required for HTTP-tunnel.

  • Bug Fixes

    -- Importing external scripts with a large number of DDL-statements was slow with Auto Complete turned on (due to redundant updations of the Auto Complete database).
    -- Deseleting a single object (like a single table) in the export dialogue also deselected all objects in other categories (like all non-table objects).

  • Funtionality changed

    -- CHUNK setting (for exports) now also has effect for non-HTTP-tunneled connections. Using this option is required if it takes more time to retrieve data from a table than server 'net_write_timeout' setting.
    -- SQLyog will now not reconnect if connection is lost during imports. Instead an error message will prompt (the reason for this is that session variables defined on top of the script would be reset to server defaults with reconnection. As a result (and most important) special characters could garble and other errors could occur as well).
    -- When trying to INSERT or UPDATE spatial data types from the DATA/RESULT tab SQLyog will now throw an error. Spatial data must be handled from the editor (but a result set from a table with spatial columns can be updated from RESULT tab if there are no spatial columns in the result).

SQLyog 8.01 (February 2009)

  • Bug Fixes

    -- Query profiler could fail to fetch the result of SHOW PROFILE for (text-wise) long queries.

SQLyog 8.0 (February 2009)

  • Features

    -- New major feature: Query Formatter. Any SELECT, UPDATE, INSERT or DELETE statement can be formatted with a single click. Various formatting options/styles are available in 'preferences'.
    -- New major feature: Query Profiler. With this feature enabled every SELECT statement will trigger execution of EXPLAIN (EXTENDED) and SHOW PROFILE (if supported by server) for the query and will detect changed SESSION STATUS VARIABLES (with some additional explanation of the meaning of those) due to execution of the query. Additionally specific GLOBAL STATUS VARIABLES will display. The feature is highly configurable. The information will display in an 'Profiler' tab opening in the DATA/RESULT area. With this new feature there is no longer an excuse not to profile queries continously in the application development process - simply because whether you do it or not the effort will be practically the same! Refer to documentation for full details.
    -- New improved icon theme with larger icons. The old icon theme originated back from a time where monitor resolutions were lower than what is mostly the case today. Also added an option to for user to select various icon sizes in the icon toolbar.
    -- The 'info-line' displaying at the bottom of DATA, RESULT and PROFILER tabs can now be turned on/off as defined by user.
    -- Added an option to force LETTERCASE (Uppercase/Lowercase) for display of keywords and functions in the editor. Note that only the display in editor is affected. When copying or saving, the LETTERCASE will copied be as it was entered.
    -- A VIEW can now be generated directly from the Query Builder.
    -- Column width's defined by user in Data GRID will now be preserved when refreshing, filtering, sorting and using previous/next buttons.
    -- Some minor GUI usability improvements and fixes in Data GRID and in Object Browser.

  • Functionality changed

    -- The SQL_WHERE option in Data Sync is changed so that WHERE-condition is evaluated against <source> only (before it was both <source> and <target> (logically OR'ed)).

  • Bug Fixes

    -- If BLOB-viewer was closed by clicking the upper-left corner 'x' symbol, changes were lost without warning.
    -- A SQL script with a user´defined DELIMITER using semicolon failed in editor as well as when importing an external script.  Most important  "DELIMITER ;;" (double semicolon) did not work - but other DELIMITER strings using semicolon (like triple semicolon etc.) did not either (however note that with HTTP tunneling and when importing external files this is not yet completed).
    -- Fixed an issue where Blob viewer was showing garbled characters for UTF8 (but in GRID text appeared properly). This was an issue with a WIN32 API function not returning a proper utf8 string. We do not use that function any more, but use our own code instead.
    -- Fixed a crash while cancelling Migration operation.

  • Miscellaneous

    -- The ENTERPRISE uninstaller will now remove registration info from the system. This is a request by users who misspelled the registration name or by mistake registered to themselves as a person and not to their company/organization. Note that as a consequence you now should have your registration details available if you uninstall and reinstall!

SQLyog 7.15 (January 2009)

  • Features

    -- Added an option to use Base64 encoding for communicating XML data stream with the HTTP tunneler. Using this option can be required to work around this XML-related bug in PHP: http://bugs.php.net/bug.php?id=45996
    -- Improved editor performance with large scripts if Wordwrap was enabled.

  • Bug Fixes

    -- On Windows Vista Business edition, SQLyog could crash while closing down. No other Windows OS (and also not any other Vista edition) was affected.
    -- Also a 'hang' could occur when closing down. It could happen with all systems, but Windows Vista was mostly affected.
    -- Schema Sync failed with identically named Foreign Key CONSTRAINTs on identically named colums of basically same type (that could still differ in LENGTH, SIGNED/UNSIGNED specification etc.).

  • Miscellaneous

    -- When a PK is built on a string column using a case insensitive collation, SJA could try to insert a row where the PK was identical to an existing one as compared "COLLATION-wise" (ie. when only LETTERCASE differed). That would result in 'duplicate key' error and the sync job would abort. We have now reverted back to case insensitive camparison with string-based PK's as before 7.0, but (to avoid data loss/overwriting) we will abort sync of tables when a string-based PK uses a binary or case sensitive collation.