May 22nd, 2012· Refreshing modern looks. We redesigned the user interface with a soothing color palette. We call it Twilight. You can also design your own themes and there is an option to switch to your default desktop theme as well.
· The data tab is now moved to the upper pane. With this, all important tabs are in the upper pane and you can see more of what you want to see, and more than one table data can be opened under the same connection.
· Schema synchronization logic is optimized and now it is up to 100 times faster for large schemas.
· Introduced many keyboard shortcuts for power users.
· Added an option for multi-column sorting and filtering of table data.
· Many more usability enhancements and bug fixes.
March 24th, 2012· Added an option to specify the font used in the Object Browser.
· Schema Sync now has an option to add SET FOREIGN_KEY_CHECKS = 0 to the script generated.
· Added an option to specify INIT_COMMAND(s) for a connection. INIT_COMMAND(s) are executed when SQLyog connects and reconnects. The primary purpose is to override settings specified with ‘init_connect’ setting in server configuration for the SQLyog session. For instance if ‘init_connect’ server setting specifies “SET AUTOCOMMIT = 0″ you may enter “SET AUTOCOMMIT = 1″ in the SQLyog connection manager if you want a non-transactional behavior for the SQLyog session.
Bug fixes:
· If both a column default and a column comment was specified in CREATE/ALTER TABLE a SPACE-character was missing in the generated statement causing invalid syntax error. This bug was introduced in 9.5.
· Fixed a crash (reported internally) in the ‘Indexes’ tab of the CREATE/ALTER TABLE interface.
· Schema Sync did not handle BIT-column defaults properly. A redundant apostrophe caused the statement generated to be invalid.
· Also if Schema Sync operated on a table where only column-level comments differed on source and target an invalid statement would be generated.
February 25th, 2012Features:
· A Chinese (Simplified) translation is now included.
Bug fixes:
· When there was an INFO tab open the server was unnecessarily queried for the content of the INFO tab (based on Object Browser selection) when closing the program. This could cause a slow shutdown.
· Fixed a crash occurring when pressing the ESC key in the CREATE/ALTER tab/dialog. This bug was introduced in 9.6.
February 23rd, 2012Features:
· When performing CREATE/ALTER TABLE operation from inside the Schema Designer now a dialog with a tabbed interface similar to the CREATE/ALTER TABLE tab will open.
· It is now optional if Query Builder will create statements with ‘fully qualified tablenames’ or not.
· Implemented Alt+Ins, Alt+Del, Alt+Up and Alt+Down for inserting, deleting, moving up/down the rows in CREATE|ALTER TABLE interface when the focus is on respective grids. The tooltip for the toolbar buttons will now show this shortcuts.
Bug fixes:
· In Data Sync a low setting of ’max_allowed_packet’ on source server could result in CONCAT_WS() used for checksums’ calculation returning NULL . We did not consider this and as a consequence rows could fail to sync without warning. We will now abort the job with an error message (if user has selected to ‘abort on error’) or print an error to the sja.log file and the console (if user has selected not to ‘abort on error’ ) informing that some rows may have been skippped in such cases.
· The fix for empty string defaults in 9.51 was not complete. It was (unlike 9.5) possible to create such default but it did not display as ” after creation in ALTER TABLE.
· If multiple databases with same name existed only differing in lettercase SQLyog would generate certain statements using the ‘mostly lowercased’ database name. This bug was introduced in 9.5.
· Autocomplete runs in a separate connection, but also when Autocomplete was disabled this connection was created for no reason.
· SQLyog sometimes waited unnecessarily long (30 seconds – what is the client timeout setting we use internally) to report that SSH connection could not be established. This happened for instance if a wrong RSA passphrase was entered. In such and other cases there is no reason to wait for client timeout.
· Small fixes – mostly GUI fixes to the new CREATE/ALTER TABLE interface.
January 5th, 2012Features:
· The active database context is now highlighted in Object Browser using a bold font.
Bug fixes:
· Drop-downs in the DATA and RESULT tab grid (used by SET and ENUM columns) could ‘drop down’ where they should ‘drop up’ instead.
· Specifying empty string defaults for strings columns was broken in 9.5.
· Fixed a rare crash caused by an undoumented behavior from the Windows API resulting in division by zero. Crash is now avoided by adding an additional condition check.
· Fixed a painting issue in the Foreign Key tab in the new (from 9.5) tabbed interface for CREATE/ALTER TABLE that could render the interface here unusable on some systems.
· Other minor fixes with same tabbed interface.
December 17th, 2011The conversion of modal dialogue boxes to a tabbed interface for creating and altering tables, and defining table properties:
· Creating a table involves – defining columns, and often, creating indexes and foreign keys. Before, these actions had to be done one after the other, which was annoyingly slow. Now, you can define columns, and create indexes and foreign keys – all in a single interface, which gives you a single CREATE/ALTER TABLE query to execute. Not only is creating tables easier, it is also much faster!
· Modal dialogue boxes limit one from multitasking. Previously, when in the middle of creating a foreign key, if some information had to be looked up from a different table (or even the same table), it required one to close all the dialogue boxes, get the information, and then start again from scratch! Now, while working on creating a table, you can go to another tab, check for some details and return back to creating the table.
· History and Info tabs now appear alongside the Query tab. As the content of these two tabs is not dependent on a specific Query tab, it is logical to not have these under the Query tab. Additionally, these tabs consume one third of the system resource that they did before.
· Content of History and Info tabs is now searchable.
November 22nd, 2011Bug fixes:
· Fixed two regression bugs in Autocomplete introduced in 9.31: 1) a performance regression if the option to “Show suggestion as you type in SQL editor” was enabled. 2) Table alias support was broken.
· The Autocomplete popup windows opened by Ctrl+Enter and Ctrl+Space could ‘pop down’ where it should ‘pop up’ resulting in the content being partly invisible. This bug was introduced in 9.31.
November 10th, 2011Bug fixes:
· Typing using the numerical keypad typed nothing in the SQL editor. This bug was introduced in 9.31.
· With Japanese interface enabled some favorites items could fail to display.
November 10th, 2011Features:
· Improved the handling of (built-in and stored) functions and stored procedures in Autocomplete. This involves 1) a stored program is now handled also if a ‘fully qualified routine name’ is not used. 2) introduced a Ctrl+Shift+Space keyboard shortcut that will display the parameter-list of a routine when the cursor is positioned inside it. 3) while writing a routine call the parameter list will highlight the current parameter. Also note that we have also reversed the behavior of Ctrl+Space and Ctrl+Enter keyboard shortcuts for Autocomplete – this in order to comply with most IDE’s and advanced editors.
Bug fixes:
· Schema Sync could generate an incorrect ALTER TABLE statement with an A TIMESTAMP .. ON UPDATE CURRENT_TIMESTAMP column on source. This bug was introduced in 8.4.
· On Wine the status line (at the button of the program window) did not display. This was introduced in 9.3.
· The Keyboard CTRL+SPACE did nothing on Wine. Now CTRL+SPACE and CTRL+ENTER beve identically on Windows and Wine
· On Wine the autocomplete popup window painted with a frame hiding some details.
· When Japanese was selected for the program interface ‘Copy Database/Table’ returned an error. Also this was introduced in 9.3.
November 2nd, 2011· This release adds a Japanese translation of the User Interface.
October 12th, 2010Features:
· Added an option to reorder TABs using drag’n'drop in the GUI. The option is available for connection tabs as well as Query/Query Builder/Schema Designer tabs.
· Added ‘FORM view’ option (in addition to ‘GRID view’ and ‘TEXT view’ already available) for managing data in DATA tab. ‘FORM view’ will display one row at a time and is in particular convenient when entering data from the keyboard. Auto_increment columns are handled. Other CONSTRAINTS must be handled by user. FORM view is an ENTERPRISE/ULTIMATE feature.
· As a consequence of the above CTRL+L keyboard shortcut will now ‘rotate’ the display mode in DATA tab like Grid->Form->Text->Grid etc. Please also see note below.
· The Query Formatter is now completely rewritten. In principle all types of SQL statements are now supported and all limitations with the old implementation are lifted.
· Inside ‘pseudo comments’ (like /*! .. this .. */) “paranthesis’es matching” is now enabled. Inside plain comments it is still disabled.
· The Editor now has a ‘folding option’. Multi-line code and comment blocks between bracket-pairs, BEGIN-END pairs, C-style comment pairs (/* and */), WHILE-END WHILE pairs, LOOP-END LOOP pairs, REPEAT-END REPEAT pairs and CASE-END CASE pairs can now be ‘folded’ in/out (ie: hidden or unhidden).
· Autocomplete will now backquote table name (+ routine name etc.) if databasename is backquoted when inserting first-mentioned after a “.” (dot).
· There is now no size limit on files to be opened in the editor (except for available memory).
Bug fixes:
· Fixed formatting issues with text-mode if multiple multi-line string columns were displayed.
· The ‘persistence setting’ for ‘all rows’ in DATA tab would sometimes be forgotten (and it was not fixed in 8.62 as 8.62 release notes told).
· If scrolling in GRIDs is done using Scroll Bar (including Scroll Bar context menu) focus will now not change and will remain on the previously selected row. However navigation between rows in GRID using Pageup/PageDown will still change the focus between rows.
· If more than 9 Query etc. tabs were open it was not possible to navigate beyond the 9'th using keyboard shortcuts. Now ALT+9 will select the last tab (for connection tabs same was implemented in 8.5).
July 26th, 2010· This release ports a single critical bug fix from the newly released 8.55 release to the current 8.6 beta/development tree: If user edited data in RESULT-tab GRID and changed from Edit Mode to Read Only mode without saving, the UPDATE statement would omit the proper WHERE-clause. As a consequence all rows would be updated. This bug was introduced in 8.4. All users using 8.4 or higher should upgrade due to this serious bug.
July 26th, 2010Bug Fixes:
· If user edited data in RESULT-tab GRID and changed from Edit Mode to Read Only mode without saving, the UPDATE statement would omit the proper WHERE-clause. As a consequence all rows would be updated. This bug was introduced in 8.4. All users using 8.4 or higher should upgrade due to this serious bug..
· Sorting and filtering on YEAR-type columns in RESULT tab did not work. Now it works with YEAR(4), but with YEAR(2) it still does not with this release.
· A connection tab/window can now be closed even if there is only one connection (this fix is backported from 8.6 beta release).
· Fixed an issue with Schema Sync when source and target differed in both columns and Foreign Keys. Sometimes the ALTER script would only specify the FK-changes to target (also this fix is backported from 8.6 beta release).
March 29th, 2010Features:
· Dumps created with ’scheduled backup’ can now be zipped. Note: the limitation with the archive file name in 8.31 beta1 has been lifted. Now the full unicode range can be used.
· ‘Notifications Services’ can now read queries from an external file.
· Added an option to send a mail alert if an error occurs while executing a ‘maintenance query’ from Notifications Services.
· In RESULT tab data can now be sorted by clicking on column headers like already possible in DATA tab. However note the difference as compared to sorting in DATA tab: in DATA tab we will send a SELECT .. ORDER BY .. query to MySQL – in RESULT tab we will sort inside the internal SQLyog data buffer. That means that for strings sorting in RESULT tab does not respect the collation defined for the data. Also all sorting on string values in RESULT tab is currently always case-insensitive (and note: this also applies to binary types: binary, varbinary and BLOB).
· ‘copy to clipboard’ and ‘export to CSV-file’ -settings are now independent.
March 29th, 2010Bug Fixes:
· If ’all rows’ option for a table was selected in DATA tab this setting had effect when switching to a table that had never been viewed before. Consequently first selecting ‘all rows’ for a small table and next selecting a huge table could cause system memory exhaustion. This bug was introduced with the table-level row-number persistence in 8.22. Now a table that has never been opened before will be opened first time with the default LIMIT setting.
· First time a specific query was executed paging in RESULT tab (as introduced in 8.31 beta1) did not work properly for that query.
· If paging was disabled for RESULT tab the ‘rows in a range’ radiobutton was still selected (but ‘greyed out’ though).
· When printing from Schema Designer blank sheets could be printed if a table object was positioned close to the border of a page.
· Fixed (yet another) multimonitor issue.
· When a Query Builder tab was closed with an unchanged QB layout, SQLyog prompted if changes should be saved.
· If tables named identically except for lettercase existed in same database on a unix/linux server one of those tables would display data for the other table in DATA tab. The wrong table was specified in the query sent to MySQL. This bug was introduced in 8.0.
· Fixed a crash when copying data to clipboard from DATA tab using toolbar icon.
· Improved GUI in ‘Import External Data Tool’ wizard (explaining limitations with various Microsoft ODBC drivers).
· SQLyog connection manager required a user name, what prevented connection as a MySQL ’anonymous user’.
· The automatic detection of what local port to use for SSH-tunneling (as introduced in 8.21) could in rare situations detect a port from where connection was not possible.
· Schema Sync could generate an invalid USE .. LIMIT … statement. This bug was introduced with paging in RESULT tab in 8.3.
March 11th, 2010Features:
· Added an option to define a ‘color code’ for a connection. The color will be used as background color in the Object Browser.
· A Query Builder session can now be saved and resumed.
· In Query Builder a table alias can be defined for any table by double-clicking the title bar of the table symbol.
· In RESULT tab results can now be retrieved page-wise. This is ON as default with this build with a defined LIMIT of 1000 rows. For a specific query user can change and for this specific query the setting is persistent across sessions. Also read ‘miscellaneous’ paragraph below.
· Added a context menu to Query Builder canvas.
Bug Fixes:
· Deleting a user would leave non-global privileges orphaned in the ‘mysql’ database. Now we use DELETE USER syntax if server supports.
· Also using EDIT USER dialogue to change host or user specifier for a user would not move non-global privileges. We have split the old ALTER USER dialogue into two: a EDIT USER and RENAME USER dialogue. The latter will use RENAME USER syntax if server supports.
· On Wine Data Sync could generate a malformed XML-string what would case Data Sync to abort.
· Fixed an issue where SSH-tunneling failed with public/private key authentication. Technically the fix is in the PLINK binary shipped with SQLyog.
· SJA failed to send notification mails if Yahoo SMTP servers were used. Note that the fix disables encryption option with Yahoo SMTP servers – but it won’t work anyway due to a non-standard SMTP implementation server-side.
· When importing data from a Universe ODBC-source string data could be truncated.
· The fix in 8.22 for the issue that horizontal scrollbar in GRID would sometime not appear was not complete. It could still happen.
· SQLyog will now trim trailing whitespaces in Connection Manager and Create object dialogs to avoid MySQL Errors..
· Opening a file from ‘recent files’ list could crash SQLyog if a Query Builder or Schema Designer tab was selected and the file specified was not a valid XML file for that tab. This bug was introduced in beta 1.
· When calling a Stored Procedure with more than one SELECT statement from ‘Notifications Services’ only one result set was sent by mail.
· The sja.log file had no line-breaks between what was recorded for two jobs.
· On multi-monitor system resizable dialogues could open on the wrong monitor. New implementation is like this: on multi-monitor systems main program dialogue and ‘first child dialogue’ (example: ALTER TABLE) will open where they were closed (if possible), second and higher child dialogues (example: table advanced properties) will always open on top of its ‘parent’ dialogue. Non-resizable dialogues (such as confirmation boxes) will always open on top of their ‘parent’.
· With multiple SSH-tunnelled connections open stopping and re-executing queries in multiple connections in a fast manner could crash SQLyog.
· If more than one comment occurred before a SELECT statement in the editor, the statement was not identified as a SELECT statement by the Query Profiler and the Query Profiler TAB would not display.
· We did not validate client-side if user checked atoincrement option for a bit column with Create/Alter table dialog.
· If an error occurred while renaming a trigger then trigger was lost as SQLyog was not recreating it back.
· Small GUI fixes.
Miscellaneous:
· The default LIMIT setting for DATA tab has been removed. The setting is not required since we introduced table-level persistence for number of rows displayed. The default for new tables that have not been opened before is 50 – but when user changes the value and next ‘refresh’es SQLyog will save the LIMIT for that particular table persistently across sessions. This in combination with page-wise display in RESULT tab results in a more uniform User Interface for DATA and RESULT tabs.
January 29th, 2010Bug Fixes:
· ‘Test connection’ would succeed even if a non-existing database was specified in the database field. Connection would next fail.
· Database name (if any) would erase on clicking OK in error dialog in connection window.
· HTML exports could drop the first character of string output.
· With multimonitor setup and SQLyog on the right screen some rarely used dialogues would pop up on left screen.
· Copy database/table will now display ‘connecting to source/target server’ while connecting. If establishing connection took more than a few seconds users could have the impression that nothing was happening.
· An extra RESULT tab could appear when executing a query. This bug was introduced in 8.2. Professional and Enterprise editions were affected.
· In notification wizard sending mail would fail if there was no semicolon after the query and “include original query” option was checked.
· With more than 65 536 (2^16) rows displayed in GRID, the GRID scrollbar would expose strange behavior. We were using a scroll control using 16 bit integers internally. New scroll control handles +4 billion rows.
· In Wine when displaying very wide tables and result sets (like 500+ columns) the column header could disappear. The underlying reason was that Wine failed to render a gradient as transparent but rendered it as opaque instead.
· Horizontal scrollbar in GRID would sometime not appear when executing a query returning a large number of columns if not scrollbar was required for previous query.
· With larger than ‘normal’ DPI setting the BLOB Viewer header would not display properly.
· ‘Export as SQL-dump’ dialogue was redesigned to allow for longer files paths.
January 19th, 2010Features:
· Now SJA will also send mail alert if job aborted due to MySQL error. Before it was only internal SJA error.
· The local port used by SSH-tunneling will now be selected automatically. This will avoid conflicts in case multiple programs use SSH. Also with Data Sync from command-line/scheduler it was possible to use same port for both connections what would effectively sync a server with itself.
· Caption for ‘Parse’ button in Notification Services Wizard was changed to make it clear that it will actually execute the statement(s) entered. There is no way to let the server parse a statement except for executing it.
· Connection windows for SSH connections will now list SSH host details in the title bar.
· Tooltips for an icon will now list the keyboard shortcut performing same action.
· The option to display ‘all’ versus a ‘LIMIT’ed set of rows in DATA tab is now table-specific and saved across sessions (note that – similar to the ‘column width persistence’ feature – connection parameters are not using for identifying a table; only the database name and the table name are).
· Objects in an Object Browser node is now sorted case-insensitive.
Bug Fixes:
· Continuously clicking the ‘Calculate’ button in Schema Optimizer in a fast manner could crash SQLyog.
· The keyword.db file (used by auto-complete and syntax highlighting) is now read only. Various validators for Windows7-compatibility would report that SQLyog wrote to “Program Files” folder at runtime (what it did not).
· When copying to clipboard an out of memory error could occur also when there was enough memory.
· The table menu will now indicate what storage engine is currently used for the table.
· Autocomplete and syntax highlighting did not recognize keywords archive, blackhole, federated, example, maria, pbxt, federatedx, falcon and mrg_myisam.
· Notifications Services/’Send Query to Email address’ option did not send a mail if an error occurred. Now a mail listing the error will be sent.
· We did not validate client-side if user specified a default value for an auto-increment column (what is invalid with MySQL).
· In DATA and RESULT tab the context menu was only working from GRID-cells. Now it also does from GRID headers and ‘whitespace’ in the tabs.
· Updating a ’TIMESTAMP on update CURRENT_TIMESTAMP’ had no effect (the particular column was not listed in the UPDATE-statement sent by SQLyog). This was a necessary restriction before 8.13 but since we – from 8.13 – only list columns that have actually been edited by user, we can now lift this restriction.
· Import External Data – TRIGGERS could fail to update a SQL Server (n)varchar if it contained an empty string.
· If user had selected to save SSH-password locally and later changed the password, the new password was not saved – unless clicking ’save’ button in connection manager interface.
· When importing an external script with no explicit SET NAMES on top, SET NAMES latin1 was executed by SQLyog. Now we won’t do this – and server default charset will have effect for the import in such case.
· Autocomplete did not handle identifiers with the ‘_’ character correctly what could result in too many matches when matching the database with a pattern in editor containing such character.
· Other small GUI fixes.
Miscellaneous:
· This release ships with an updated tunneler file for HTTP-tunneling. In the old tunneler file functions were used that are depreciated in PHP 5.3x.
· The ‘Objects’ menu was renamed to ‘Others’.
January 6th, 2010Features:
· Now SJA will also send mail alert if job aborted due to MySQL error. Before it was only internal SJA error.
· The local port used by SSH-tunneling will now be selected automatically. This will avoid conflicts in case multiple programs use SSH. Also with Data Sync from command-line/scheduler it was possible to use same port for both connections what would effectively sync a server with itself.
· Caption for ‘Parse’ button in Notification Services Wizard was changed to make it clear that it will actually execute the statement(s) entered. There is no way to let the server parse a statement except for executing it.
· Connection windows for SSH connections will now list SSH host details in the title bar.
· Tooltips for an icon will now list the keyboard shortcut performing same action.
· The option to display ‘all’ versus a ‘LIMIT’ed set of rows in DATA tab is now table-specific and saved across sessions (note that – similar to the ‘column width persistence’ feature - connection parameters are not using for identifying a table; only the database name and the table name are).
Bug Fixes:
· Continously clicking the ‘Calculate’ button in Schema Optimizer in a fast manner could crash SQLyog.
· The keyword.db file (used by auto-complete and syntax highlighting) is now read only. Various validators for Windows7-compatibility would report that SQLyog wrote to “Program Files” folder at runtime (what it did not).
· When copying to clipboard an out of memory error could occur also when there was enough memory.
· The table menu will now indicate what storage engine is currently used for the table.
· Auto-complete and syntax highlighting did not recognize keywords archive, blackhole, federated, example, maria, pbxt, federatedx, falcon and mrg_myisam.
· Notifications Services/’Send Query to Email address’ option did not send a mail if an error occurred. Now a mail listing the error will be sent.
· We did not validate client-side if user specified a default value for an auto-increment column (what is invalid with MySQL).
· In DATA and RESULT tab the context menu was only working from GRID-cells. Now it also does from GRID headers and ‘whitespace’ in the tabs.
· Updating a ’TIMESTAMP on update CURRENT_TIMESTAMP’ had no effect (the particular column was not listed in the UPDATE-statement sent by SQLyog). This was a necessary restriction before 8.13 but since we – from 8.13 – only list columns that have actually been edited by user, we can now lift this restriction.
· Import External Data – TRIGGERS could fail to update a SQL Server (n)varchar if it contained an empty string.
· If user had selected to save SSH-password locally and later changed the password, the new password was not saved – unless clicking ’save’ button in connection manager interface.
· When importing an external script with no explicit SET NAMES on top, SET NAMES latin1 was executed by SQLyog. Now we won’t do this – and server default charset will have effect for the import in such case.
· Other small GUI fixes.
Miscellaneous:
· This release ships with an updated tunneler file for HTTP-tunneling. In the old tunneler file functions were used that are depreciated in PHP 5.3x.
· The ‘Objects’ menu was renamed to ‘Others’.
November 20th, 2009· Schema optimizer will now throw a warning if table is empty. Also interface now has link to help/documentation.
November 20th, 2009· 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
November 18th, 2009· 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.
· Structure Sync will now query Information_Schema for a VIEW definition. MySQL sometimes returns ‘databasename.viewname’ and not just ‘viewname’ when using SHOW CREATE.
· Fixed a Object Browser flickering issue when refreshing.
· 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.
November 10th, 2009Features:
· 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.
· 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.
· ALTER TABLE failed to rename a column when old and new column name only differed by letter-case. Actually the dialogue just shut down.
October 28th, 2009Bug 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
October 21st, 2009Bug 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.
October 17th, 2009Features:
· 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 avoid 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 INSERTS 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-tunneling 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.
October 10th, 2009Bug Fixes:
· 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.
· Copy database/table could be slow if BULK INSERTS option was selected in ‘preferences’. This bug was introduced in 8.15 beta 1.
· 8.15 RC could crash when executing a LOAD DATA statement. This first RC was build with a recent 5.1 client library. Before 8.15 RC we used a 5.0 library. We have now reverted back to 5.0 (5.0.86 client library is used with this release). Issue with the 5.1 client library is not fully understood but it may be related to known memory issues reported with it.
Miscellaneous:
· Functionality change: Before this release we stripped out the database name from Stored Program and View SQL-code when generating SQL-dumps and 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.
October 1st, 2009Bug Fixes:
· 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 INSERTS 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-tunelling 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’
September 1st, 2009Features:
· 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-tunnelling.
· 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.
August 20th, 2009Bug Fixes:
· When backing up a VIEW a temporary table was created on . 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). We hope to be able to find a better solution soon, but the issue is a server issue that affects all clients - refer to http://bugs.mysql.com/?id=46779.
· 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.
August 14th, 2009Features:
· 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 writable files will be saved. This was mainly 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 functionality 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. Please see detailed note below.
· 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). Please see detailed note below.
· 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 larger 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 to 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.
· Non-column results (like functions, expressions etc.) were affected by column-width persistence feature what they should not (it had weird effects sometimes).
· Various places a horizontal scrollbar displayed where it was not required.
· Fixed wrong behavior with GRID scroll bar 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.
· 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 (
· ) but templates contained Unix linebreaks (
· ).
· 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.
· 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.
· Emptying a database rendered Autocomplete non-functional for the session.
· 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.
· ‘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 it could happen that Data Sync took more time than this setting to prepare a BULK INSERT statement. Connection to 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 PLINKSSHD reconnect will still be logged always.
Additional comments:
· DO NOT take for granted that use of compressed protocol will always increase performance, because the truth is that most often it will make things slower. Use of compressed protocol will decrease the amount of data to be transferred over the network, but it will result in additional load on both the server and the client (due to compressing and uncompressing). You should never use the option when connecting to MySQL on local machine, on local network or over a fast Internet connection. With slower connections however using this option may improve overall performance. It is impossible to be more specific as most Internet connections have asymmetric properties that differ across Internet providers and telecom companies.
· The option to define timeout for the session (different from the global setting) is possible with MySQL servers from 4.1 and up. However most users will not need to care about it - not even if server (global) timeout setting is low. SQLyog will reconnect if connection was lost since last query was run. Most often user does not even notice. However we have reports of situations where the network takes very long time to process such reconnect requests. In this situation setting the timeout from the client will prevent the situation to occur. Also SSH-users connecting to SSH servers/daemons that are slow to establish connection and where MySQL has a low timeout setting can use this option with advantage.
July 31st, 2009Bug Fixes:
· ‘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 it could happen that Data Sync took more time than this setting to prepare a BULK INSERT statement. Connection to 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.
July 18th, 2009Bug Fixes:
· The fix in beta 2 with TIMESTAMP ON UPDATE and Data Sync introduced a new issue. An additional `backquote` could be generated in statements for tables having a TIMESTAMP column - what would cause failure to sync affected table.
· 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. Please read this FAQ to understand the privilege issue with ALTER STORED PROCEDURE/FUNCTION in SQLyog.
July 15th, 2009Changes (as compared to 8.13 beta 1) include:
Features:
· 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. Please see detailed note below.
· Added an option for user to specify the timeout setting for the session (note: it will work with MySQL 5.0 and up only as earlier versions do not support SESSION variables). Please see detailed note below.
· 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. Everwhere 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!
· Emptying a database rendered Autocomplete non-functional for the session.
· 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 to be less than 100 MB).
· The various options available for backups have been reorganised 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:
· 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.
· 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.
Miscellaneous:
· SQLyog reconnects are now coded differently. 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).
Additional comments:
· DO NOT take for granted that use of compressed protocol will always increase performance, because the truth is that most often it will make things slower. Use of compressed protocol will decrease the amount of data to be transferrred over the network, but it will result in additional load on both the server and the client (due to compressing and uncompressing). You should never use the option when connecting to MySQL on local machine, on local network or over a fast Internet connection. With slower connections however using this option may improve overall performance. It is impossible to be more specific as most Internet connections have asymmetric properties that differ across Internet providers and telecom companies.
· The option to define timeout for the session (different from the global setting) is possible with MySQL servers from 5.0 and up. However most users will not need to care about it - not even if server (global) timeout setting is low. SQLyog will reconnect if connection was lost since last query was run. Most often user does not even notice. However we have reports of situations where the network takes very long time to process such reconnect requests. In this situation setting the timeout from the client will prevent the situation to occur. Also SSH-users connecting to SSH servers/daemons that are slow to establish connection and where MySQL has a low timeout setting can use this option with advantage.
June 20th, 2009Features:
· 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 mainly implemented for users that want to have all SQLyog-related files on a removeable 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.
· 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).
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.
· Non-column results (like functions, expressions etc.) were affected by column-width persistence feature what they should not (it had weird effects sometimes).
· Various places a horizontal scrollbar displayed where it was not requiered.
· Fixed wrong behaviour 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.
· 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 (
· ) but templates contained Unix linebreaks (
· ).
June 9th, 2009Bug 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.
June 8th, 2009Bug 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 .
June 3rd, 2009· One of most loved feature of SQLyog is the snappy and responsive user interface. Many of our users and customers prefer SQLyog over other tools because of this particular reason.
· One reason for the zippy interface could be that SQLyog is entirely developed in C/C++, which tends to be faster than other languages when it comes to raw speed. I don’t want to start a flame war here, but our customers seem to like this fact. Using C/C++ allows us to use the native MySQL C client libraries that gives the best performance as compared to other ways of communicating with MySQL. Using C/C++ also ensures that there are no external dependencies on any bulky frameworks and the download file is relatively small.
· Although using a language that complies directly to machine instructions helps a lot, but true speed comes from better algorithms. A similar analogy in the MySQL context would be that you might get some benefits from tuning your mysql.cnf/mysql.ini file, but real benefits come only when you find problematic queries in your application and rewrite them and/or create better indexes.
· SQLyog uses a set of smart algorithms for its data synchronization tools. These algorithms ensure that we only transfer checksums using multiple threads and do full row transfer only when required. We have an old blog post with some benchmarking results here.
· Although our data sync speeds are quite impressive, we were not happy with the results in certain scenarios. This led us to improve the data sync speeds even further with 8.1. We will publish some new benchmarking results soon in our blog.
With 8.1, we have been able to introduce massive speed improvements in the following areas:
· Data synchronization
· Auto complete
· Export as SQL (including Scheduled Backups), CSV and XML
Wait, we are not finished yet with the improvements in 8.1. This release introduces the following major features:
· Completely revamped Objects tab. The tab has been renamed to “Info”. The contents are now available in nicely formatted HTML in addition to the old text format
· Direct import of Access, Excel and CSV files. Now you don’t need to create ODBC DSN to import these file types. Just point to the files and SQLyog does the rest
Last but not the least, we continue to improve the usability with every release of SQLyog. With 8.1 we have made the following GUI changes:
· Added an option to ‘preview SQL’ in CREATE/ALTER TABLE
· Column width in all GRIDs (not only DATA and RESULT tabs) are now persistent
· New GUI for defining ENUM and SET columns in Create/Alter GUI
· Some reorganisations of menus, improved captions and explanations in dialogues and wizards etc
· Needless to say, this release contains many bug fixes, UI improvements and minor features.
· We are very excited about this release, and hope that you will like it. We would love to hear from you.
May 29th, 2009Features:
· Improved speed of ‘backup’ (including ’scheduled backup’) similar to the improvements in RC2 for ‘export’.
Bug Fixes:
· 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.
May 26th, 2009Features:
· INFO tab/HTML option had added more information.
· 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.
· Drastically improved the speed of exports (typically 3-4 times faster). This refer to exports as CSV, XML ,HTML, Excel XML and SQL. But note: no change with ‘export as SQL-dump’ and ’scheduled backup’.
· Added ’scheduled backup’ option to Object Browser context menu.
· Some reorganisations of menus, improved captions and explanations in dialogues and wizards etc.
Bug Fixes:
· The dialogue for defining SET/ENUM types introduced in beta1 did not prevent duplicate entries.
· Removed redundant SPACES in CREATE statements. These SPACES could cause formatting to garble when copying (to a web form for instance).
· Lots of fixes for small (mostly GUI-related) issues reported internally.
May 22nd, 2009Features:
· 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.
· The changes in beta1 were ‘polished’.
May 15th, 2009Features:
· Added an option to import text/.csv, .xls (Excel) and .mdb (Access) files without 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. Also Office2007 formats (.xlsx, .accdb) are supported like this provided that this Microsoft driver set is installed (it is not per default on any Windows version).
· 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.
· New GUI for defining ENUM and SET columns in Create/Alter GUI.
· Autocomplete had a complete ‘overhaul’ resulting in better performance.
· Column width in all GRIDs (not only DATA and RESULT tabs) are now persistent.
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 columnname 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.
April 8th, 2009Features:
· 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 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.
April 4th, 2009· 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 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.
April 2nd, 2009Bug Fixes:
· Fixed a critical bug in Beta 1: BLOB and TEXT types would not update from the RESULT tab. The ‘red alert’ that data were changed but not saved would disappear, but no SQL was sent to the server.
Miscellaneous:
Beta 1 release notes reading:
· The SET NULL checkbox in BLOB VIEWER will now uncheck automatically when user types into the BLOB VIEWER window.
· .. were incorrect. Correct documentation for this new implementation is
· 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.
April 1st, 2009Features:
· User Management icon was re-introduced in the Icon Bar.
· The SET NULL checkbox in BLOB VIEWER will now uncheck automatically when user types into the BLOB VIEWER window.
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.
· 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.
March 24th, 2009Features:
· Crash dumps with no information (zero-size) will now be deleted automatically.
· When saving/copying from the editor the LETTERCASE modfications 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 expose detailed information about 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 (
· ) instead of Windows linebreaks (
· ) between multiple queries what in turn could result in that the tokenizer/editor 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 GUI 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 (’ ' 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.
March 17th, 2009Features:
· 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.
Bug Fixes:
· Fixed some flickering issues and other small issues in Schema Designer.
· 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” (similar to “Restore from SQL dump” as of beta 1).
· The prevention to UPDATE binary data introduced in beta 1 was not functional for TEXT types. Also a correction/clarification: for BLOB types there is currently no such prevention (in order to support images).
March 13th, 2009Features:
· Crash dumps with no information (zero-size) will now be deleted automatically.
· When saving/copying from the editor the LETTERCASE modfications 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.
Bug Fixes:
· An index defined on more than one column dislayed 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 (
· ) instead of windows linebreaks (
· ) 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.
· Fixes with “Restore From SQL dump” 1) progress bar improvement 2) progress information with files larger than 4 GB displayed wrong due to 32 bit integer overflow. Now a 64 bit integer is used.
· 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.
· Lots (around 20) 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 (’ ' in C-notation) no matter whether this occurs for binary types (binary, varbinary, BLOB) or string types (char, varchar, TEXT). 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
March 6th, 2009Features:
· 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 ‘overridden’ 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 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 and databases.
· The program dialogues for SHOW variables/processlist/status, SHOW warnings with CSV-import and Table advanced properties are now resizable.
· Fixed a bug with detection of encoded strings stored in BLOBs (This bug was introduced in 8.0 - and it is still recommended to use TEXTs for encoded strings).
· Doubleclicking in the GRID could cause the GRID position to move.
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 ..)).
March 4th, 2009· Bug Fixes.
· Further improvements in the fixes for flickering issues. Also the fixes in beta1 had introduced some painting issues that were now solved.
· Doubleclicking in the grid could cause the GRID position to move.
· Fixed a bug with detection of encoded strings stored in BLOBs (This bug was introduced in 8.0 - and it is still recommended to use TEXTs for encoded strings).
· Miscellaneous.
· 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 ..))..
February 27th, 2009Features:
· 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 ‘overridden’ by the new column width persistence feature.
· ‘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 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 and databases.
· The program dialogues for SHOW values/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.
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!
February 24th, 2009Features:
· 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).
February 20th, 2009Features:
· Both SQLyog and SJA will now detect if Base64 encoding is required for HTTP-tunnel.
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).
February 5th, 2009· Query profiler could fail to fetch the result of SHOW PROFILE for (text-wise) long queries.
February 3rd, 2009Features:
· 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 only (before it was both and (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!
January 17th, 2009Features:
· Added option for user to choose between different icon sizes in the icon toolbar.
· Added option for user to select/deselect the ‘info-line’ displaying at the bottom of DATA, RESULT and PROFILER tabs.
Bug Fixes:
· Fixed a crash with PROFILING in beta1. Crash could occur even when executing rather simple queries.
· Fixed a crash with ALTER TABLE in beta1 when the contents of a cell in the ALTER TABLE GRID was deleted.
· Formatter failed with strings specified with ”_charset” specifier and/or hexadecimal (’x') or binary (’b') modifier (like “_utf8 x’AAA00F99′” or “_latin1 b’01010111”’). Also COLLATE clause for a literal string was not supported by Formatter.
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/organisation. Note that as a consequence you now should have your registration details available if you uninstall and reinstall!
January 12th, 2009Features:
· 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 PROFLE (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. The feature is highly configurable. The information will display in an ‘Analyzer’ 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 and for limitations of current implementation. This beta contains first step (only) planned for this feature.
· New improved icon theme with larger icons (in progress). The old icon theme originated back from a time where monitor resolutions were lower than what is mostly the case today.
· 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 be copied be as it was entered.
· A VIEW can now be generated directly from the Query Builder.
· Status bar will now display information like “showing x rows of total y”.
· Some minor GUI usability improvements and fixes in Data Grid and in Object Browser.
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 tunnelling and when importing external files this is not yet completed ).
January 6th, 2009Features:
· Added an option to use Base64 encoding for communicating XML data stream with the HTTP tunneller. Using this option can be required to work around this XML-related bug in PHP.
· 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.
December 4th, 2008Bug fixes:
· Schema Sync did not distinguish “default NULL” and “default ” (empty string)” for string types.
· When multiple connections were open in one program instance and one connection was in wait-state (for instance due to a TABLE LOCK), the whole program could become non-responding.
· If a server thread running a query sent by SQLyog was killed, SQLyog would not always detect it. The connection window associated with that thread would then stay in wait-state forever. Due to the ‘multiple connections issue’ as described just above also the whole program could be affected.
· With MySQL servers 4.0 and before and when connecting with HTTP-tunnel, SQLyog could send an invalid SET SQL_MODE statement when copying large amounts of data. The copy operation would then abort. This bug was introduced in 7.12.
· Reconnecting while populating Object Browser could crash SQLyog.
· Fixed 2 rare crashes in Schema Sync and DATA tab (reported internally).
· Fixed a bug with ‘replace’ in editor. ‘replace’ took effect *after* cursor position not *from* cursor position, so if cursor was positioned inside the string to be replaced that particular instance would not replace.
· Refreshing the GRID moved the cursor to ‘home’ position.
· Fixed a bug in Autocomplete transaction handling (introduced in 7.13) that could cause a crash at statup.
· Migration Tool could fail to find rows when migrating from SQL server 2008.
November 27th, 2008· Schema Sync did not distinguish “default NULL” and “default ” (empty string)” for string types.
· When multiple connections were open in one program instance and one connection was in wait-state (for instance due to a TABLE LOCK), the whole program could become non-responding.
· If a server thread running a query sent by SQLyog was killed, SQLyog would not always detect it. The connection window associated with that thread would then stay in wait-state forever. Due to the ‘multiple connections issue’ as described just above also the whole program could be affected.
· With MySQL servers 4.0 and before and when connecting with HTTP-tunnel, SQLyog could send an invalid SET SQL_MODE statement when copying large amounts of data. The copy operation would then abort. This bug was introduced in 7.12.
· Reconnecting while populating Object Browser could crash SQLyog.
· Fixed 2 rare crashes in Schema Sync and DATA tab (reported internally).
· Fixed a bug with ‘replace’ in editor. ‘replace’ took effect *after* cursor position not *from* cursor position, so if cursor was positioned inside the string to be replaced that particular instance would not replace.
· Refreshing the GRID moved the cursor to ‘home’ position.
· Fixed a bug in Autocomplete transaction handling (introduced in 7.13) that could cause a crash at statup.
November 18th, 2008Bug fixes:
· Fixed a rare crash in Schema Sync. This issue was discovered when testing internally. No user had reported this.
· Management of column-level privileges was not functional.
· It was only possible to select a single group of objects in GRIDS with the shift+click modifier.
Miscellaneous:
· Autocomplete now uses secure atomic transactions when writing to SQLite databases (’Tags files’). We had a few reports of random program crashes that could be traced down to corrupt SQLite databases. This corruption will now not happen any more.
October 30th, 2008Features:
This release improves the handling of Foreign Keys with HTTP-tunnelling. In Data Sync, Migration, ‘copy to other’, ‘empty database’ and ‘truncate database’ statements are now processed in batches and “SET FOREIGN_KEY_CHECKS = 0? statement (if selected by user) will be reinstantiated for every batch. This is a 100% solution to problems with FK’s normally occuring with PHP applications/connections due to the non-persistent nature of PHPMySQL connections:
· In preferences added an option to ‘force disable FK check throughout HTTP import batch process’. Selecting this will have same effect as above when importing external files with SQLyog (from tools .. restore from SQL-dump) over an HTTP-connection. It is selected as default.
Bug Fixes:
· On Wine selecting individual objects (like a single table) for export/copy could export/copy all. This was yet another issue with the tree-view control in Wine.
· Autocomplete with table alias failed if “FROM” in FROM-clause was written UPPERCASE.
· It was not possible to create the Primary Key on with the Migration tool if using option to import using a user-specified query.
· Dropping a table ON which a TRIGGER was defined did not refresh the TRIGGERs folder for the database in the Object Browser. Also ‘reorder columns’ did not automatically refresh the COLUMNs folder for a table.
· The display in Object Browser could garble if program was minimized/maximized while a query was running.
· Right-clicking a only partially visible cell in DATA/RESULT tab would not select properly.
· The CREATE USER privilege (introduced in MySQL 5.03) was not handled by SQLyog user management.
· Fixed a painting issue in ‘manage privileges’ dialogue introduced with resizability in 7.11.
· Fixed an issue with the CSV import dialogue that could result in a ‘hang’ or ‘crash’.
· When nothing was selected for SQL export an empty file was generated. Now an error pops up.
· Fixed a crash in data sync. This issue affected only empty tables (or empty WHERE results) without a PK.
· CSV-export escaped wrong inside enclosed/quoted strings. Only the enclose character itself should be escaped, but also field seperator character and linebreaks were.
September 29th, 2008· Pressing Crtl+end in GRID did not show the last row. This bug was introduced in 7.1.
· Fixed a flickering issue in Data tab. It was a threading issue related to the STOP button introduced in 7.1.
· When executing a query not returning a result set, focus would leave editor (unless the ‘keep focus on editor’ option was set). This made no sense. Now focus will be kept on editor if there is no result set.
· Data sync could fail with column names containg a SPACE character and if specific keywords was used for column names.
September 22nd, 2008Features:
· Added keyboard shortcut (F6) for Edit Index.
· The behaviour of Ctrl+R shortcut was slightly changed. It will now position cursor inside the active tab in Result pane. Before it was functional only with DATA tab and RESULT tabs.
· Added tab-navigation (for query tabs) entries in Edit-menu. Also the active Query tab can now be closed from menu.
· In certain situations Schema Sync would generate CHANGE-clauses for a column that basically did nothing (changing column to what it was). This is now ‘cleaned up’.
· A tab in the Query pane (a Query tab, a Schema Designer tab and a Query Builder tab) can now be closed with Alt+L keyboard shortcut and can now be navigated with Ctrl+pgup and Ctrl+pgdn keyboard shortcuts.
· Favorites are now displayed using Scintilla editor component. For statements with complex formatting this makes the preview more readable.
· Autocomplete now supports alias in UPDATE and DELETE statements.
· BLOB viewer and the program dialogues for schema sync, create/alter table, manage indexes (including sub-dialogues) manage foreign keys (including sub-dialogues) and manage privileges are now resizable. From now resizable dialogues have a ‘gripper’ icon in right bottom corner.
· Added a movable ’splitter’ between the object area and the script area in schema sync dialogue.
· Preferences dialogue was redesigned.
· Added an option in Preferences to ‘Automatically refresh DATA tab on focus’. This was the program behavior before 7.0. In 7.0 to 7.02 it was not. Now it is optional.
· Shift+click is now functional for multiple selection everywhere in GRIDS (before it was only in Result/Table Data tabs).
· ’show in text’ (Ctrl+L) is now functional for both DATA tab and RESULT tab. Also ‘Find’ (Ctrl+F) now works with DATA tab in text mode.
· Stop option implemented in data tab. This is in particular useful if accidentially the ’show all’ option was selected for a huge table.
· Added an icon in data tab tool bar indicating if current display is filtered. Also from this icon ‘reset filter’ can be applied directly.
· Added option in Schema Sync to compare all objects or compare only tables.
· Now the result tab displays the query as a ribbon at the bottom. This is useful where more queries are executed from the same editor tab.
· Refresh option included for show variables, show processlist and show status.
· Changed functionality for shortcut F3; now it pops up ‘Find’ dialog (before it was for keyboard shortcut dialog - F12 is used for this now).
· The sync script generated by Schema Sync could fail when a change in columns used for Foreign Key(s) or a change with the Foreign Key itself was attempted.
· The display of execution time etc. for queries (in MESSAGES tab, HISTORY tab and statur bar) was reorganised for better clarity.
Bug Fixes:
· The GRID would truncate the display of strings longer than 511 characters.
· When a user-defined DELIMITER and a comment occured close to another in the program editor, the editor tokenizer component could fail to identify exactly where a statement began and ended.
· Data Sync could fail with a table having no Primary Key, but more Unique Keys, if the same column was used for defining more than one of the Unique Keys of the table. This was introduced with the new Data Sync code of 7.0 (before 7.0 Unique Keys were not used by Data Sync at all - only Primary Keys were).
· Fixed an escaping bug in Data Sync.
· Fixed an issue with WHERE clause in Data Sync.
· Proxy authentication details were not written correctly to jobfile by SJA wizards.
· Since 7.0 the WHERE clause defined by user in migration wizard was not written to jobfile.
· In Wine Schema Sync could generate an erroneous sync script (specific functions on Wine functioned slightly different than the original Win32 API).
· Fixed a number of GUI related issues.
September 18th, 2008· Stop option implemented in data tab. This is in particular useful if accidentially the ’show all’ option was selected for a huge table.
· Added an icon in data tab tool bar indicating if current display is filtered. Also from this icon ‘reset filter’ can be applied directly.
· Added option in Schema Sync to compare all objects or compare only tables.
· Now the result tab displays the query as a ribbon at the bottom. This is useful where more queries are executed from the same editor tab.
· Refresh option included for show variables, show processlist and show status.
· Changed functionality for shortcut F3; now it pops up ‘Find’ dialog (before it was for keyboard shortcut dialog - F12 is used for this now).
· Now also ‘manage privileges’ dialogue is resizable. From now resizable dialogues have a ‘gripper’ icon in right bottom corner.
· Fixed an escaping bug in Data Sync.
· Fixed an issue with WHERE clause in Data Sync.
· Proxy authentication details were not written correctly to jobfile by SJA wizards.
· Since 7.0 the WHERE clause defined by user in migration wizard was not written to jobfile.
· In Wine Schema Sync could generate an erroneous sync script (specific functions on Wine functioned slightly different than the original Win32 API).
· The sync script generated by Schema Sync could fail when a change in columns used for Foreign Key(s) (or a change with the Foreign Key itself) was attempted.
August 7th, 2008· Bug fix: If a reconnect took place shortly after Compare button in Schema Sync was clicked, the MySQL server has gone away error could occur (details: data from a not updated internal buffer was used - in reality it was before the reconnect that the server went away!).
· Reconnects are now written to HISTORY (as a comment)
May 24th, 2008· Structure Sync could miss the concluding quote around column comments. This bug was introduced in 6.5.
· Migration from SQL Server could fail with empty tables.
· Migration (UPDATE and DELETE) triggers could fail with specific schemas on source (afffected were small tables with short column types only - like integers and very short string types). This bug was introduced early in 6.x with the full Unicode support added here.
· Migration could generate non-matching columns-count with specific schemas. This was also introduced early in 6.x
· Message about Successful rows could display twice in Migration (sja.log). Note: This was a cosmetical issue with the message only. Rows were only migrated once!
April 29th, 2008· When executing Structure Sync between a 5.1.x server and an earlier version, Structure Sync could try to access a non-existing Information_Schema.Events table, what returned an error (it depended on the exact 5.1 version).
April 25th, 2008· The various fixes for BIGINT PK's in data sync in the 6.1x tree had slowed down data sync with BIGINT PK's.
April 17th, 2008Features:
· Data Sync now has SMTP (mail) functionalities similar to other SJA modules.
· Autocomplete now supports column alias'es.
· Zooming in Schema Designer can be done with 'Ctrl ' and 'Ctrl -'.
· Added an option to specify (in preferences .. powertools) storage position for TAGS files (used by Autocomplete). On networks where 'roaming profiles' are stored on a domain server specifying a local folder will reduce network traffic and save storage on the server.
Bug fixes:
· ALTER TRIGGER template did not display DEFINER.
· Create/Alter table .. advanced properties generated the string '[default]' where it should be 'default' only.
· Fixed an issue with 'abort on error' in Scheduled Backup. The job was always aborted on error. Now if set to NO it will proceed to next statement.
· Notifications Service could crash if query was not SELECT. In particular HTTP tunnelled connections were affected by this.
· Migration from an Access database could leave a .ldb file behind (that should be deleted after the migration process was over).
· On Vista a graphical artifact could occur on right side of screen when program was maximized.
· Some other small GUI fixes.
February 27th, 2008· Features.
· SJA SMTP (mail) code will now use ESMTP if available and fall back on ('ordinary') SMTP if not (before only ESMTP was supported what failed with some specific routers).
· Added an option to specify CHARSET parameter for CSV-import. Unicode (UTF8 and UCS2/UTF16) will be detected automatically. For files encoded with a non-unicode encoding, user must select the MySQL charset used for the import. Alternatively there is a option that will not use the CHARSET parameter at all (= old program behaviour).
Bug fixes:
· The HTTP-tunneller was updated to 'work around' an issue with 'foreach' loops on PHP 4.3.10. HTTP-tunnelling to a server with that specific PHP version could cause a program crash.
· The uninstaller would not remove Start Menu shortcuts on Windows Vista.
· If SSH tunnel was used for both connections in DATA SYNC the plink process for the connection was not getting terminated properly.
· Display in the CREATE/ALTER TABLE grid would be truncated if an ENUM or SET type was defined with a value containing the ")" character.
· A crash could occur when backing up (using 'export' as well as 'scheduled backup') an object having a DEFINER different than the current user. This further depends on the MySQL version and whether user had SELECT privilege to the`mysql`database or not. Now a message will appear (on the screen or in the sja.log file) that this object was skipped due to lack of privileges when it is not possible to back up.
· When exporting to HTML, XML or CSV -formats from the RESULT tab one row could be missing if the RESULT tab dropdown was in edit-mode. EXCEL and SQL formats were not affected.
· When data were inserted or updated from RESULT tab, SQL and EXCEL export options would not export the new/changed rows unless after a reconnnect.
· When connected to MySQL 3.x and 4.0 the ALTER TABLE GUI would generate invalid SQL if existing column(s) were edited and new column(s) added in one operation (a comma was missing).
· Assigning privileges (from 'manage permissions) for a specific user to a specific Stored Function and Stored Procedure was buggy (wrong string identifying the ROUTINE type was inserted). Also a problem with VIEW-related privileges was fixed.
· A jobfile for 'scheduled backup' created with versions 6.x before 6.1 contains a tag (with the values "yes" or "no") that indicates if the backup shall be utf8-encoded. This tag was not properly ignored as it should from version 6.1 - instead it could occur that a non-existing charset (named 'yes' or 'no' respectively) was requested from the server. That would return an error that would cause the job to abort.
· Data Sync would not identify that rows containing data like ('data',NULL) and (NULL,'data') are different, as NULL-values did not 'contribute' to the checksums calculated. No update would take place.
· The fix in Data Sync for BIGINT Primary Keys containing very large numbers in 6.11 was not complete. Internal data could be truncated what again could result in wrong identification of rows to be inserted, updated or deleted.
· Certain queries (when performing GRID operations) were not 'piped through' the reconnection wrapper module. This could with low 'wait_timeout' server setting result in the 'server has gone away' error message if affected operations were executed with longer intervals between.
· Structure Sync failed to sync a specified index length.
January 24th, 2008· Added an option to specify CHARSET parameter for CSV-import. Unicode (UTF8 and UCS2/UTF16) will be detected automatically. For files encoded with a non-unicode encoding, user must select the MySQL charset used for the import. Alternatively there is a option that will not use the CHARSET parameter at all (= old program behaviour).
· A crash could occur when backing up (using 'export' as well as 'scheduled backup') an object having a DEFINER different than the current user. This further depends on the MySQL version and whether user had SELECT privilege to the`mysql`database or not. Now a message will appear (on the screen or in the sja.log file) that this object was skipped due to lack of privileges when it is not possible to back up.
· When exporting to HTML, XML or CSV -formats from the RESULT tab one row could be missing if the RESULT tab dropdown was in edit-mode. EXCEL and SQL formats were not affected.
· When data were inserted or updated from RESULT tab, SQL and EXCEL export options would not export the new/changed rows unless after a reconnnect.
· When connected to MySQL 3.x and 4.0 the ALTER TABLE GUI would generate invalid SQL if existing column(s) were edited and new column(s) added in one operation (a comma was missing).
· Assigning privileges (from 'manage permissions) for a specific user to a specific Stored Function and Stored Procedure was buggy (wrong string identifying the ROUTINE type was inserted). Also a problem with VIEW-related privileges was fixed.
· A jobfile for 'scheduled backup' created with versions before 6.1 contains a tag (with the values "yes" or "no") that indicates if the backup shall be utf8-encoded. When set to "no" it could occur (with versions 6.1 and higher) that SJA tried to use a non-existent charset for the backup and the job would abort.
January 3rd, 2008· Fixed a bug with migration of a Access 'text' type that could occur when when more/many such columns were migrated.
· When the content of an editor tab was changed using 'search and replace' the tab was not properly 'flagged' internally as changed. As a consequence the (*) indicator for this 'change-status' would not display and program would not prompt user if changes should be saved.
· fixed a bug in validating the SP/VIEW/... name while creating. A symptom was that an empty name could be used.
· With a TINYINT having (-1) as default Structure Sync would use COLLATE specification and thus generate an invalid statement when connected to a MySQL 4.1.x server.
· When expanding/collapsing the folder tree in the Object Browser by clicking the " " and "-" in a very fast manner, data could be copied to the editor when it should not.
· When connected to MySQL 3.23 and 4.0.x < 4.0.18 'reorder columns' could generate invalid SQL with a Primary Key definition.
· Improper message was returned when invalid or non-existing path was used for exporting a dump.
· After an unsuccessfull import (because of syntax error in the file for instance) the file handler was not properly free'd. As a result next attempt would fail with 'Error saving ... ' message. Only HTTP-connections were affected.
· "SET FOREIGN_KEY_CHECKS = 0" is now default where it applies (exports, data sync).
· The display for F5/F9 shortcut settings in 'preferences' was changed. 'reverse' setting now means that F5 executes! It is 'reversed' as compared to what help .. keyboard shortcut tells.
· This build does not use 'urlencode' in HTTP header. This is probably not the final solution, but we realize that it is more rare that it is needed compared to the situations where it won't work!
December 21st, 2007· With a TINYINT having (-1) as default Structure Sync would use COLLATE specification and thus generate an invalid statement when connected to a MySQL 4.1.x server.
· When expanding/collapsing the folder tree in the Object Browser by clicking the " " and "-" in a very fast manner, data could be copied to the editor when it should not.
· "SET FOREIGN_KEY_CHECKS = 0" is now default where it applies (exports, data sync)
· The display for F5/F9 shortcut settings in 'preferences' was changed. 'reverse' setting now means that F5 executes! It is 'reversed' as compared to what help .. keyboard shortcut tells.
November 16th, 2007· ALTER TABLE would generate invalid SQL with column-level comments.
· COMMUNITY version (not ENTERPRISE) could crash when editing connection details.
· On Wine a meaningless error message when selecting a table could occur.
November 15th, 2007· Empty or incomplete lines in sqlyog.ini would cause stop reading from the file. As a consequence details that could not be read would not be written. Those details that could not be read were lost.
· Reading from sqlyog.ini was slow with huge number of connections.
November 9th, 2007· SQLyog could crash when trying to connect to a server when the thread used for establishing the previous connection had not yet stopped executing (connection code wasn't thread-safe)
· Structure Sync could generate DROP statements where the name of the object to be dropped was empty.
· Scheduled Backup threw the error "incorrect table name" when backing up all tables from MySQL 4.0 and before ('export' had no such issue).
· Fixed an issue with Migration Tool where importing Foreign Keys could fail when migrating from Microsoft Access.
· Fixed an encoding issue with special characters and Data Sync when syncing between MySQL versions where one supports SET NAMES and the other one does not.
· Fixed an issue that could cause SMTP authentication to fail.
· Fixed a pointer corruption when importing from a file. This corruption could result in a crash.
November 6th, 2007· Structure Sync could generate DROP statements where the name of the object to be dropped was empty.
· Fixed an issue with Migration Tool where importing Foreign Keys could fail when migrating from Microsoft Access.
· Fixed an encoding issue with special characters and Data Sync when syncing between MySQL versions where one supports SET NAMES and the other one does not.
October 24th, 2007· Fixed a crash that could occur in Migration Tool when opening a saved jobfile.
August 16th, 2007· Files used by SQLyog that are not read-only (.ini, .log, .err) are now no longer created in 'program files' files tree (or what localized name it has). The storage follows Microsoft recommendations for the various Windows versions. Existing files will be moved when program is started first time and a backup created in the original position. Windows Vista has actualized this.
· CREATE/ALTER TABLE GUI now supports '' (two singlequotes) in the DEFAULT column of the grid for defining an empty string as column default. If column type is not char, varchar, varbinary, set or enum a warning will display (that is also true for binary and bit types, where MySQL accepts '' as default - but with strange results!). To use the literal string '' (two singlequotes) as column default enclose it in backquotes like `''`.
· Fixed an issue with 'auto-complete' introduced in version 6.05 where autocomplete windows did not show if cursor was in last position of the editor.
· Fixed an issue with empty strings when migrating data from the Sage accounting software on Win2K.
June 20th, 2007· Program could crash when opening a migration jobfile containing a query
· Importing with the Migration Tool using a 'file-DSN' was broken since version 6.0. Various errors could result when trying to use such DSN. 'user-DSN' and 'system-DSN' worked as expected.
· The special PLINK build shipped with SQLyog ENTERPRISE failed to authenticate if there were spaces in the password/passphrase
· When connected to MySQL 3.23/4.0 there were problems when editing data in RESULT TAB with certain special characters . The fix for this in version 6.02 was not complete.
· Fixed an issue where SQLyog threw a 'meaningless' error message.