MySQL Workbench Changelog

What's new in MySQL Workbench 8.0.34

Jul 19, 2023
  • Account Management Notes:
  • A new password-validation system variable now permits the configuration and enforcement of a minimum number of characters that users must change when attempting to replace their own MySQL account passwords. This new verification setting is a percentage of the total characters in the current password. For example, if validate_password.changed_characters_percentage has a value of 50, at least half of the characters in the replacement account password must not be present in the current password, or the password is rejected.
  • This new capability is one several that provide DBAs more complete control over password management. For more information, see Password Management. (WL #15751)
  • Audit Log Notes:
  • In MySQL 8.0.33, the audit_log plugin added support for choosing which database to use to store JSON filter tables. It is now possible to specify an alternative to the default system database, mysql, when run the plugin installation script. Use the audit_log_database server system variable (or -D database_name) on the command line together with the alternative database name, for example:
  • $> mysql -u root -D database_name -p < audit_log_filter_linux_install.sql
  • For additional information about using audit_log plugin installation scripts, see Installing or Uninstalling MySQL Enterprise Audit. (Bug #35252268)
  • MySQL Enterprise Audit now supports using the scheduler component to configure and execute a recurring task to flush the in-memory cache. For setup instructions, see Enabling the Audit Log Flush Task. (WL #15567)
  • Binary Logging:
  • Several functions now are added to the libmysqlclient.so shared library that enable developers to access a MySQL server binary log: mysql_binlog_open(), mysql_binlog_fetch(), and mysql_binlog_close().
  • Our thanks to Yura Sorokin for the contribution. (Bug #110658, Bug #35282154)
  • C API Notes:
  • In the calling function, len is initialized to 0 and never changed if net->vio is null. This fix adds a check of net before dereferencing vio.
  • Our thanks to Meta for the contribution. (Bug #30809590)
  • A variable in the async client was uninitialized in certain code paths. It is fixed by always initializing the variable.
  • Our thanks to Meta for the contribution. (Bug #30809590)
  • Compilation Notes:
  • Microsoft Windows: For Windows, improved MSVC_CPPCHECK support; and check for MSVC warnings similar to "maintainer" mode. For example, check after all third party configurations are complete. (Bug #35283401)
  • References: See also: Bug #34828882.
  • Microsoft Windows: For Windows builds, improved WIN_DEBUG_NO_INLINE=1 support; usage would exceed the library limit of 65535 objects. (Bug #35259704)
  • Upgraded the bundled robin-hood-hashing from v3.8.1 to v3.11.5. (Bug #35448980)
  • Removed the unused extra/libcbor/doc/ directory as extra/libcbor/doc/source/requirements.txt inspired bogus pull requests on GitHub. (Bug #35433370)
  • Updated the bundled ICU files from version 69.1 to version 73 for the icu-data-files package. (Bug #35353708)
  • ZSTD sources bundled in the source tree were upgraded to ZSTD 1.5.5 from 1.5.0. (Bug #35353698)
  • Initialize the internal MEM_ROOT class memory with garbage using the TRASH macro to make easier to reproduce bugs caused by reading initialized memory allocated from MEM_ROOT. (Bug #35277644)
  • We now determine stack direction at runtime rather than at configure time. (Bug #35181008)
  • Added the OPTIMIZE_SANITIZER_BUILDS CMake option that adds -O1 -fno-inline to sanitizer builds. It defaults to ON. (Bug #35158758)
  • Changed the minimum Bison version requirement from v2.1 to v3.0.4. For macOS, this may require installing Bison via a package manager such as Homebrew. (Bug #35154645, Bug #35191333)
  • MySQL now sets LANG=C in the environment when executing readelf to avoid problems with non-ASCII output.
  • Our thanks to Kento Takeuchi for the contribution. (Bug #111190, Bug #35442825)
  • On macOS, MySQL would not compile if rapidjson was installed via Homebrew. The workaround was to brew unlink rapidjson. (Bug #110736, Bug #35311140)
  • References: This issue is a regression of: Bug #35006191.
  • MySQL would not build with -DWITH_ZLIB=system; it'd complain about not finding the system zlib library despite finding it. (Bug #110727, Bug #110745, Bug #35307674, Bug #35312227)
  • Deprecation and Removal Notes:
  • Important Change: Since MySQL provides other means of performing database dumps and backups with the same or additional functionality, including mysqldump and MySQL Shell Utilities, the mysqlpump client utility program has become redundant, and is now deprecated. Invocation of this program now produces a warning. You should keep in mind that mysqlpump is subject to removal in a future version of MySQL, and move applications depending on it to another solution, such as those mentioned previously. (WL #15652)
  • Replication: The sync_relay_log_info server system variable is deprecated in this release, and getting or setting this variable or its equivalent startup option --sync-relay-log-info now raises a warning.
  • Expect this variable to be removed in a future version of MySQL; applications which make use of it should be rewritten not to depend on it before this happens. (Bug #35367005, WL #13968)
  • Replication: The binlog_format server system variable is now deprecated, and subject to removal in a future version of MySQL. The functionality associated with this variable, that of changing the binary logging format, is also deprecated.
  • The implication of this change is that, when binlog_format is removed, only row-based binary logging, already the default in MySQL 8.0, will be supported by the MySQL server. For this reason, new installations should use only row-based binary logging, and existing ones using the statement-based or mixed logging format should be migrated to the row-based format. See Replication Formats, for more information.
  • The system variables log_bin_trust_function_creators and log_statements_unsafe_for_binlog, being useful only in the context of statement-based logging, are now also deprecated, and are thus also subject to removal in a future release of MySQL.
  • Setting or selecting the values of any of the variables just mentioned now raises a warning. (WL #13966, WL #15669)
  • Group Replication: The group_replication_recovery_complete_at server system variable is now deprecated, and setting it produces a warning. You should expect its removal in a future release of MySQL. (WL #15460)
  • The mysql_native_password authentication plugin now is deprecated and subject to removal in a future version of MySQL. CREATE USER, ALTER USER, and SET PASSWORD operations now insert a deprecation warning into the server error log if an account attempts to authenticate using mysql_native_password as an authentication method. (Bug #35336317)
  • Previously, if the audit_log plugin was installed without the accompanying audit tables and functions needed for rule-based filtering, the plugin operated in legacy filtering mode. Now, legacy filtering mode is deprecated. New deprecation warnings are emitted for legacy audit log filtering system variables. These deprecated variables are either read-only or dynamic.
  • (Read-only) audit_log_policy now writes a warning message to the MySQL server error log during server startup when the value is not ALL (default value).
  • (Dynamic) audit_log_include_accounts, audit_log_exclude_accounts, audit_log_statement_policy, and audit_log_connection_policy. Dynamic variables print a warning message based on usage:
  • Passing in a non-NULL value to audit_log_include_accounts or audit_log_exclude_accounts during MySQL server startup now writes a warning message to the server error log.
  • Passing in a non-default value to audit_log_statement_policy or audit_log_connection_policy during MySQL server startup now writes a warning message to the server error log. ALL is the default value for both variables.
  • Changing an existing value using SET syntax during a MySQL client session now writes a warning message to the client log.
  • Persisting a variable using SET PERSIST syntax during a MySQL client session now writes a warning message to the client log.
  • MySQL enables control of FIPS mode on the server side and the client side using a system variable and client option. Application programs can use the MYSQL_OPT_SSL_FIPS_MODE option to mysql_options() to enable FIPS mode on the client. Alternatively, it is possible to handle FIPS mode directly through OpenSSL configuration files rather than using the current server-side system variable and client-side options. When MySQL is compiled using OpenSSL 3.0, and an OpenSSL library and FIPS Object Module are available at runtime, the server reads the OpenSSL configuration file and respects the preference to use a FIPS provider, if one is set. OpenSSL 3.0 is certified for use with FIPS.
  • To favor the OpenSSL alternative, the ssl_fips_mode server system variable, --ssl-fips-mode client option, and the MYSQL_OPT_SSL_FIPS_MODE option now are deprecated and subject to removal in a future version of MySQL. A deprecation warning prints to standard error output when an application uses the MYSQL_OPT_SSL_FIPS_MODE option or when a client user specifies the --ssl-fips-mode option on the command line, through option files, or both.
  • Prior to being deprecated, the ssl_fips_mode server-side system variable was dynamically settable. It is now a read-only variable (accepts SET PERSIST_ONLY, but not SET PERSIST or SET GLOBAL). When specified on the command line or in the mysqld-auto.cnf option file (with SET PERSIST_ONLY) a deprecation warning prints to the server error log. (WL #15631)
  • The mysql_ssl_rsa_setup program originally provided a simple way for community users to generate certificates manually, if OpenSSL was installed on the system. Now, mysql_ssl_rsa_setup is deprecated because MySQL Community Edition no longer supports using yaSSL as the SSL library, and source distributions no longer include yaSSL. Instead, use MySQL server to generate missing SSL and RSA files automatically at startup (see Automatic SSL and RSA File Generation). (WL #15668)
  • The keyring_file and keyring_encrypted_file plugins now are deprecated. These keyring plugins are superseded by the component_keyring_file and component_keyring_encrypted_file components. For a concise comparison of keyring components and plugins, see Keyring Components Versus Keyring Plugins. (WL #15659)
  • Previously, the MySQL server processed a version-specific comment without regard as to whether any whitespace followed the MySQL version number contained within it. For example, the comments /*!80034KEY_BLOCK_SIZE=1024*/ and /*!80034 KEY_BLOCK_SIZE=1024*/ were handled identically. Beginning with this release, when the next character following the version number in such a comment is neither a whitespace character nor the end of the comment, the server issues a warning: Immediately starting the version comment after the version number is deprecated and may change behavior in a future release. Please insert a whitespace character after the version number.
  • You should expect the whitespace requirement for version-specific comments to become strictly enforced in a future version of MySQL.
  • The MySQL client library currently supports performing an automatic reconnection to the server if it finds that the connection is down and an application attempts to send a statement to the server to be executed. Now, this feature is deprecated and subject to removal in a future release of MySQL.
  • The related MYSQL_OPT_RECONNECT option is still available but it is also deprecated. C API functions mysql_get_option() and mysql_options() now write a deprecation warning to the standard error output when an application specifies MYSQL_OPT_RECONNECT. (WL #15766)
  • IPv6 Support:
  • NDB Cluster: NDB did not start if IPv6 support was not enabled on the host, even when no nodes in the cluster used any IPv6 addresses. (Bug #106485, Bug #33324817, Bug #33870642, WL #15561)
  • Performance Schema Notes:
  • The type used for the Performance Schema clone_status table's gtid_executed column has been changed from VARCHAR(4096) to LONGTEXT. (Bug #109171, Bug #34828542)
  • SQL Syntax Notes:
  • CURRENT_USER() can now be used as a default value for VARCHAR and TEXT columns in CREATE TABLE and ALTER TABLE ... ADD COLUMN statements.
  • When used in this way, these functions are also included in the output of SHOW CREATE TABLE and SHOW COLUMNS, and referenced in the COLUMN_DEFAULT column of the Information Schema COLUMNS table where applicable.
  • If you need to insure that values having the maximum possible length can be stored in such a column, you should make sure that the column can accommodate at least 288 characters (255 for the user name and 32 for the host name, plus 1 for the separator @). For this reason—while it is possible to use one of these functions as the default for a CHAR column, it is not recommended due to the risk of errors or truncation of values. (Bug #17809, Bug #11745618)
  • Functionality Added or Changed:
  • Important Change: For platforms on which OpenSSL libraries are bundled, the linked OpenSSL library for MySQL Server has been updated from OpenSSL 1.1.1 to OpenSSL 3.0. The exact version is now 3.0.9. More information on changes from 1.1.1 to 3.0 can be found at https://www.openssl.org/docs/man3.0/man7/migration_guide.html. (Bug #35475140, WL #15614)
  • Binary packages that include curl rather than linking to the system curl library have been upgraded to use curl 8.1.1. (Bug #35329529)
  • Bugs Fixed:
  • Important Change: The default value of the connection_memory_chunk_size server system variable, when introduced in MySQL 8.0.28, was mistakenly set at 8912. This fix changes the default to 8192, which is the value originally intended. (Bug #35218020)
  • NDB Cluster: The fix for a previous issue introduced a slight possibility of unequal string values comparing as equal, if any Unicode 9.0 collations were in use, and the collation hash methods calculated identical hash keys for two unequal strings. (Bug #35168702)
  • References: See also: Bug #27522732. This issue is a regression of: Bug #30884622.
  • InnoDB: Possible congestion due to purging a large number of system threads has been fixed. (Bug #35289390, Bug #110685)
  • InnoDB: ddl::Aligned_buffer now uses the standard memory allocator and not kernel memory management. (Bug #35194732, Bug #110411)
  • InnoDB: An upgrade from MySQL 5.7 to MySQL 8.0.32 might fail due to deprecated configuration parameters innodb_log_file_size or innodb_log_files_in_group. The workaround is to start MySQL 8.0.32 with --innodb-redo-log-capacity=206158430208. (Bug #35155280)
  • InnoDB: The rules for aggregating entries in the redo log have been fixed. (Bug #34752625, Bug #108944)
  • InnoDB: Several errors due to tablespace deletion and the buffer pool have been fixed. (Bug #34330475, Bug #107689)
  • Packaging; Group Replication: The group replication plugin from the Generic Linux packages did not load on some platforms that lacked a compatible version of tirpc. (Bug #35323208)
  • Replication: Changes in session_track_gtids were not always propagated correctly. (Bug #35401212)
  • Replication: By design, all DDL operations (including binary log operations such as purging the binary log) acquire a shared lock on the BACKUP_LOCK object, which helps to prevent simultaneous backup and DDL operations. For binary log operations, we checked whether any locks existed on BACKUP_LOCK but did not check the types of any such locks. This caused problems due to the fact that binary log operations should be prevented only when an exclusive lock is held on the BACKUP_LOCK object, that is, only when a backup is actually in progress, and backups should be prevented when purging the binary log.
  • Now in such cases, instead of checking for locks held on the BACKUP_LOCK object, we acquire a shared lock on BACKUP_LOCK while purging the binary log. (Bug #35342521)
  • Replication: In all cases except one, when mysqlbinlog encountered an error while reading an event, it wrote an error message and returned a nonzero exit code, the exception being for the active binary log file (or any binary log where the format_description_log_event had the LOG_EVENT_BINLOG_IN_USE_F flag set), in which case it did not write a message, and returned exit code 0, thus hiding the error.
  • Now mysqlbinlog suppresses only those errors which are related to truncated events, and when doing so, prints a comment rather than an error message. This fix also improves the help text for the --force-if-open option. (Bug #35083373)
  • Replication: Compressed binary log event handling was improved. (Bug #33666652)
  • Replication: A transaction consisting of events each smaller than 1 GiB, but whose total size was larger than 1 GiB, and where compression did not make it smaller than 1 GiB, was still written to the binary log as one event bigger than 1 GiB. This made the binary log unusable; in effect, it was corrupted since neither the server nor other tools such as mysqlbinlog could read it.
  • Now, when the compressed data grows larger than 1 GiB, we fall back to processing the transaction without any compression. (Bug #33588473)
  • Group Replication: In a group replication setup, when there was a source of transactions other than the applier channel, the following sequence of events was possible:
  • Several transactions being applied locally were already certified, and so were associated with a ticket, which we refer to as Ticket 2, but had not yet been committed. These could be local or nonlocal transactions.
  • A view is created with Ticket 3, and must wait on transactions from Ticket 2.
  • The view change (VC1) entered the GR applier channel applier and waited for the ticket to change to 3.
  • Another group change, and another view change (VC2), occurred while the transactions from Ticket 2 were still completing.
  • This gave rise to the following issue: There was a window wherein the last transaction from Ticket 2 had already marked itself as being executed but had not yet popped the ticket; VC2 popped the ticket instead but never notified any of the participants. This meant that VC1 continued to wait indefinitely for the ticket to change, and with the additional effect that the worker could not be killed.
  • We fix this by checking for the need to break each second so that this loop is responsive to changes in the loop condition; we also register a new stage, so that the loop is more responsive to kill signals. (Bug #35392640)
  • References: See also: Bug #35206392, Bug #35374425.
  • Group Replication: Removed a memory leak discovered in Network_provider_manager::open_xcom_connection(). (Bug #34991101)
  • Group Replication: When a group action was sent to the group and the connection was killed on the coordinator, group members were in different states, with members which received the coordinated action waiting for the member that executed it, and the member which started execution having nothing to process, which caused problems with coordination of the group.
  • Now in such cases, we prevent this issue from occurring by causing group actions to wait until all members have completed the action. (Bug #34815537)
  • Group Replication: Cleanup of resources used by OpenSSL connections created indirectly by group replication was not carried out as expected at all times. We fix this by adding cleanup functionality that can be called at any time such connections are created by group replication. (Bug #34727136)
  • JSON: When the result of JSON_VALUE() was an empty string and was assigned to a user variable, the user variable could in some cases be set to NULL instead
  • With this fix, the query just shown now returns (1, 0), as expected. (Bug #35206138)
  • JSON: Some JSON schemas were not always processed correctly by JSON_SCHEMA_VALID(). (Bug #109296, Bug #34867398)
  • In rare cases, MySQL server could exit rather than emit an error message as expected. (Bug #35442407)
  • The internal resource-group enhancement added in MySQL 8.0.31 and refactored in MySQL 8.0.32 is now reverted. (Bug #35434219)
  • References: Reverted patches: Bug #34702833.
  • An in-place upgrade from MySQL 5.7 to MySQL 8.0, without a server restart, could result in unexpected errors when executing queries on tables. This fix eliminates the need to restart the server between the upgrade and queries. (Bug #35410528)
  • A fix in MySQL 8.0.33 made a change for ORDER BY items already resolved so as not to resolve them again (as is usually the case when a derived table is merged), but this did not handle the case in which an ORDER BY item was itself a reference. (Bug #35410465)
  • References: This issue is a regression of: Bug #34890862.
  • Changes in session_track_gtids were not always handled correctly. (Bug #35401212)
  • Some pointers were not always released following statement execution. (Bug #35395965)
  • Some instances of subqueries within stored routines were not always handled correctly. (Bug #35377192)
  • Fortified parsing of the network packet data sent by the server to the client. (Bug #35374491)
  • Encryption enhancements now strengthen compliance and remove the use of deprecated APIs. (Bug #35339886)
  • When a column reference given by table name and column name was looked up in the function find_item_in_list(), we ignored that the item searched for might not have a table name, as it was not yet resolved. We fix this by making an explicit check for a null table name in the sought-after item. (Bug #35338776)
  • Deprecated the lz4_decompress and zlib_decompress command-line utilities that exist to support the deprecated mysqlpump command-line utility. (Bug #35328235)
  • Queries using LIKE '%...%' ran more poorly than in previous versions of MySQL. (Bug #35296563)
  • In Bounded_queue::push(), when Key_generator::make_sortkey() returns UINT_MAX (error), then no key has been produced; now when this occurs, we no longer update the internal queue.
  • As part of this fix, push() now returns true on error. (Bug #35237721)
  • The authentication_oci plugin is fixed to allow federated and provisioned users to connect to a DB System as a mapped Proxy User using an ephemeral key-pair generated through the OCI CLI. (Bug #35232697)
  • Some queries using common table expressions were not always processed correctly. (Bug #35231475)
  • The internal function compare_pair_for_nulls() did not always set an explicit return value. (Bug #35217471)
  • Removed the clang-tidy checks that clash with the MySQL coding style. (Bug #35208735)
  • Some subqueries using EXISTS in both the inner and outer parts of the query were not handled correctly. (Bug #35201901)
  • Rotated audit log files now always reset the ID value of the bookmark to zero, rather than continuing the value from the previous file. (Bug #35200070)
  • Errors were not always propagated correctly when evaluating items to be sorted by filesort. (Bug #35195181)
  • References: See also: Bug #35145246.
  • The fix for a previous issue with ROLLUP led to a premature server exit in debug builds. (Bug #35168639)
  • References: This issue is a regression of: Bug #33830659.
  • Simplified the implementation of Item_func_make_set::val_str() to make sure that we never try to reuse any of the input arguments, always using the local string buffer instead. (Bug #35154335, Bug #35158340)
  • When transforming subqueries to a join with derived tables, with the containing query being grouped, we created an extra derived table in which to do the grouping. This process moved the initial select list items from the containing query into the extra derived table, replacing all of the original select list items (other than subqueries, which get their own derived tables) with columns from the extra derived table.
  • This logic did not handle DEFAULT correctly due to the manner in which default values were modelled internally. This fix adds support for DEFAULT(expression) in queries undergoing the transform previously mentioned. This fix also solves an issue with item names in metadata whereby two occurrences of the same column in the select list were given the same item name as a result of this same transform. (Bug #35150085, Bug #35101169)
  • A query of the form SELECT * FROM t1 WHERE (SELECT a FROM t2 WHERE t2.a=t1.a + ABS(t2.b)) > 0 should be rejected with Subquery returns more than 1 row, but when the subquery_to_derived optimization was enabled, the transform was erroneously applied and the query returned an incorrect result. (Bug #35101630)
  • Handling of certain potentially conflicting GRANT statements has been improved. (Bug #35089304)
  • A query using both MEMBER OF() and ORDER BY DESC returned only a partial result set following the creation of a multi-valued index on a JSON column. This is similar to an issue fixed in MySQL 8.0.30, but with the addition of the ORDER BY DESC clause to the prblematic query. (Bug #35012146)
  • References: See also: Bug #106621, Bug #33917625.
  • For index skip scans, the first range read set an end-of-range value to indicate the end of the first range, but the next range read did not clear the stale end-of-range value and applies this stale value to the current range. Since the indicated end-of-range boundary had already been crossed in the previous range read, this caused the reads to stop, causing multiple rows to be missed in the result.
  • We fix this by making sure in such cases that the old end-of-range value is cleared. (Bug #34982949)
  • The debug server asserted on certain operations involving DECIMAL values. (Bug #34973932)
  • All instances of adding and replacing expressions in the select list when transforming subqueries to use derived tables and joins have been changed so that their reference counts are maintained properly. (Bug #34927110)
  • Index Merge (see Index Merge Optimization) should favor ROR-union plans (that is, using RowID Ordered Retrieval) over sort-union plans if they have similar costs, since sort-union requires additionally sorting of the rows by row ID whereas ROR-union does not.
  • For each part of a WHERE clause containing an OR condition, the range optimizer gets the best range scan possible and uses all these range scans to build an index merge scan (that is, a sort-union scan). If it finds that all the best range scans are also ROR-scans, the range optimizer always proposes a ROR-union scan because it is always cheaper than a sort-union scan. Problems arose when the best range scan for any one part of an OR condition is not a ROR-scan, in which case, the range optimizer always chose sort-union. This was true even in cases, where it might be advantageous to choose a ROR-scan (even though it might not be the best range scan to handle one part of the OR condition), since this would eleminate any need to sort the rows by row ID.
  • Now, in such cases, when determining the best range scan, the range optimizer also detects whether there is any possible ROR-scan, and uses this information to see whether each part of the OR condition has at least one possible ROR-scan. If so, we rerun the range optimizer to obtain the best ROR-scan for handling each part of the OR condition, and to make a ROR-union path. We then compare this cost with the cost of a sort-union when proposing the final plan. (Bug #34826692, Bug #35302794)
  • Selecting from a view sometimes raised the error Illegal mix of collations ... for operation '=' when the collation used in the table or tables from which the view definition selected did not match the current session value of collation_connection. (Bug #34801210)
  • Valid MySQL commands (use and status) and C API functions (mysql_refresh, mysql_stat, mysql_dump_debug_info, mysql_ping, mysql_set_server_option, mysql_list_processes, and mysql_reset_connection) could write an error message to the audit log, even though running the command or calling the function emitted no such error. (Bug #33966181)
  • Increased the maximum fixed array size to 8192 instead of 512. This fixes an issue with mysqladmin extended status requests, which can exceed 512 entries.
  • Our thanks to Meta for the contribution. (Bug #30810617)
  • The mysqldump --column-statistics option attempted to select from information_schema.column_statistics against MySQL versions before 8.0.2, but this now generates the warning column statistics not supported by the server and sets the option to false.
  • Our thanks to Meta for the contribution. (Bug #28782417)
  • The function used by MySQL to get the length of a directory name was enhanced. (Bug #28047376)
  • Executing a query with an implicit aggregation should return exactly one row, unless the query has a HAVING clause that filters out the row, but a query with a HAVING clause which evaluated to FALSE sometimes ignored this, and returned a row regardless. (Bug #14272020)
  • For a query with a derived condition pushdown where a column in the condition needs to be replaced, a matching item could not found, even when known to be present, when the replacement item was wrapped in a ROLLUP while the matching item was not. (Bug #111665, Bug #35570065)
  • References: This issue is a regression of: Bug #33349994.
  • The presence of an unused window function in a query, along with an ORDER BY that could have been eliminated, led to an unplanned server exit. (Bug #111585, Bug #35168639, Bug #35204224, Bug #35545377)
  • References: This issue is a regression of: Bug #35118579.
  • ORDER BY RANDOM_BYTES() had no effect on query output. (Bug #111252, Bug #35148945, Bug #35457136)
  • Fixed an issue which could occur when loading user-defined functions. (Bug #110576, Bug #35242734)
  • Concurrent execution of FLUSH STATUS, COM_CHANGE_USER, and SELECT FROM I_S.PROCESSLIST could result in a deadlock. A similar issue was observed for concurrent execution of COM_STATISTICS, COM_CHANGE_USER, and SHOW PROCESSLIST.
  • Our thanks to Dmitry Lenev for the contribution. (Bug #110494, Bug #35218030)
  • The mysqldump utility could generate invalid INSERT statements for generated columns. (Bug #110462, Bug #35208605)
  • During optimization, range-select tree creation uses logic which differs based on the left-hand side of the IN() predicate. For a field item, each value on the right-hand side is added to an OR tree to create the necessary expression. In the case of a row item comparison (example: WHERE (a,b) IN ((n1,m1), (n2, m2), ...)), an expression in disjunctive normal form (DNF) is needed. A DNF expression is created by adding an AND tree with column values to an OR tree for each set of RHS values, but instead the OR tree was added to the AND tree causing the tree merge to require exponential time due to O(n2) runtime complexity. (Bug #108963, Bug #34758905)
  • When using SELECT to create a table and the statement has an expression of type GEOMETRY, MySQL could generate an empty string as the column value by default. To resolve this issue, MySQL no longer generates default values for columns of type GEOMETRY under these circumstances. Our thanks to Tencent for the contribution. (Bug #107996, Bug #34426943)

New in MySQL Workbench 8.0.33 (Apr 18, 2023)

  • Audit Log Notes:
  • MySQL Enterprise Audit previously used tables in the mysql system database for persistent storage of filter and user account data. For enhanced flexibility, the new audit_log_database server system variable now permits specifying other databases in the global schema namespace at server startup. The mysql system database is the default setting for table storage. (WL #15500)
  • Compilation Notes:
  • Microsoft Windows: Added MSVC Code Analysis support for Visual Studio 2017 and higher. This adds a new MSVC_CPPCHECK (defaults to OFF) CMake option that either enables or disables this analysis on the current directory and its subdirectories. (Bug #34828882)
  • Downgraded curl deprecation warnings to -Wno-error for curl versions greater than 7.86 when MySQL is built with a GNU compiler or clang. (Bug #35111625)
  • On macOS, added -framework CoreFoundation and -framework SystemConfiguration when linking the curl interface to link with shared system libraries as needed. (Bug #35104962)
  • Replaced the MY_INCLUDE_SYSTEM_DIRECTORIES macro with library interfaces. (Bug #35018072, Bug #35028089, Bug #35072295)
  • Improved CMake code to support alternative linkers. (Bug #34963568)
  • Removed the deprecated Docs/mysql.info file from the build system. (Bug #34960126)
  • Added a top-level .clang-tidy file and associated .clang.tidy files in the strings/ and mysys/ directories. Also enabled compdb support to enable clang-tidy usage on header files. (Bug #34917075)
  • Removed several unmaintained or unused C++ source files for functionality such as uca-dump and uctypedump. (Bug #34898978)
  • Added a CMake build option to enable colorized compiler output for GCC and Clang when compiling on the command line. To enable, pass -DFORCE_COLORED_OUTPUT=1 to CMake. (Bug #34897192)
  • On Windows, also install .pdb files for associated .dll files if they are found for 3rd-party libraries. (Bug #34863555)
  • Enterprise Linux 8 and Enterprise Linux 9 builds now use GCC 12 instead of GCC 11. (Bug #34829151)
  • Building with -static-libgcc -static-libstdc++ now also builds the bundled protobuf with static libraries, as required.
  • Thanks to Alex Xing for the contribution. (Bug #110216, Bug #35123848)
  • Component Notes:
  • INSTALL COMPONENT now includes the SET clause, which sets the values of component system variables while installing one or more components. The new clause reduces the inconvenience and limitations associated with the other ways of assigning variable values. For usage information, see INSTALL COMPONENT Statement. (WL #10916)
  • Deprecation and Removal Notes:
  • User-defined collations (see Adding a Collation to a Character Set) are now deprecated. Either of the following now causes a warning to be written to the log:
  • Any occurrence of COLLATE followed by the name of a user-defined collation in an SQL statement
  • Use of the name of a user-defined collation as the value of collation_server, collation_database, or collation_connection
  • You should expect support for user-defined collations to be removed in a future version of MySQL. (WL #14277)
  • MySQL Enterprise Notes:
  • MySQL Enterprise Edition now provides data masking and de-identification capabilities based on components, rather than being based on a plugin library that was introduced in MySQL 8.0.13. The component implementation provides dedicated privileges to manage dictionaries and extends the list of specific types to include:
  • Canada Social Insurance Number
  • United Kingdom National Insurance Number
  • International Bank Account Number
  • Universally Unique Identifier (UUID)
  • An improved table-based dictionary registry replaces the file-based dictionary used by the plugin. For a summary of the differences between the component and plugin implementations, see Data-Masking Components Versus the Data-Masking Plugin. Existing plugin users should uninstall the server-side plugin and drop its loadable functions before installing the new MySQL Enterprise Data Masking and De-Identification components. (Bug #33851601, WL #12641)
  • Performance Schema Notes:
  • The Performance Schema Server Telemetry Traces service is added in this release. An interface which provides plugins and components a way to retrieve notifications related to SQL statements' lifetime.
  • For more information on this interface, see the Server telemetry traces service section in the MySQL Source Code documentation.
  • The following were added:
  • Status variable Telemetry_traces_supported. Whether server telemetry traces is supported. (Boolean)
  • TELEMETRY_ACTIVE column was added to the threads table. Indicates whether the thread has an active telemetry session attached.
  • (WL #15059)
  • Functionality Added or Changed:
  • Important Change: For platforms on which OpenSSL libraries are bundled, the linked OpenSSL library for MySQL Server has been updated to version 1.1.1t. Issues fixed in OpenSSL version 1.1.1t are described at https://www.openssl.org/news/cl111.txt. (Bug #35092429)
  • InnoDB: InnoDB now supports parallel index builds, which improves index build performance. In particular, loading sorted index entries into a B-tree is now multithreaded. Previously, this action was performed by a single thread. (WL #14772)
  • Replication: As part of ongoing work to change old terminology used in MySQL products, the terms “master”, “slave”, and “MTS” have been replaced in error messages relating to MySQL Replication by “source”, “replica”, and “MTA”, respectively. This includes all error messages listed in messages_to_clients.txt and messages_to_error_log.txt relating to replication; the present task does not perform this replacement for messages used in other contexts.
  • See the MySQL 8.0 Error Message Reference, for more information. (Bug #108422, Bug #34594819, WL #14191)
  • Replication: mysqlbinlog --start-position now accepts values up to 18446744073709551615, unless the --read-from-remote-server or --read-from-remote-source option is also used, in which case the maximum is 4294967295. (Bug #77818, Bug #21498994)
  • Binary packages that include curl rather than linking to the system curl library have been upgraded to use curl 7.88.1. (Bug #34828111)
  • The use of a generated column with DEFAULT(col_name) to specify the default value for a named column is not permitted and now emits an error message. (Bug #34463652, Bug #34369580)
  • Bugs Fixed:
  • NDB Cluster: Occasional temporary errors which could occur when opening a table from the NDB dictionary while repeatedly performing concurrent schema operations were not retried. (Bug #34843889)
  • NDB Cluster: During iteration, ordered index scans retain a cursor position within each concurrently scanned ordered index fragment. Ordered index fragments are modified and balanced as a result of committing DML transactions, which can require scan cursors to be moved within the tree. When running with query threads configured (AutomaticThreadConfig set to 1), multiple threads can access the same index fragment tree structure, and the scans of multiple threads can have their cursors present in the same structure.
  • The current issue arose due to an assumption in the logic for moving scan cursors when committing DML operations that all scan cursors belonged to the LDM thread owning the index fragment, which did not allow for the possibility that such fragments might belong to query threads. (Bug #33379702)
  • References: See also: Bug #32257063.
  • Partitioning: Some IN() queries on partitioned tables were not always handled correctly. (Bug #34801284)
  • References: This issue is a regression of: Bug #32311183.
  • Partitioning: Queries using the INDEX_MERGE optimizer hint was not handled correctly in all cases. (Bug #34797257)
  • Replication: XA transactions whose XIDs contained null bytes could not be recovered. (Bug #34918985)
  • Replication: When binlog_order_commits was set equal to 1, for any two transactions and for any sub-step of the commit phase, the transaction that was written to the binary log first did not always execute the sub-step first, as expected. (Bug #34703698)
  • Replication: The binary log recovery process did not report all possible error states. (Bug #33658850)
  • Replication: Following CHANGE REPLICATION SOURCE TO SOURCE_CONNECTION_AUTO_FAILOVER=1, failover generated a number of misleading warnings in the log that implied there were problems when in fact conditions were those expected for such a failover. These log messages have been updated accordingly. (Bug #32135376)
  • Replication: When a transaction failed, as a side effect, extraneous error messages relating the replication data repositories were written to the log. Now in such cases, we suppress such error messages, which are not directly related to the issue of the failed transaction or its cause. (Bug #19820134)
  • Replication: Setting binlog_order_commits to OFF could lead to a missed GTID in the next binary log file's Previous_gtids event.
  • Our thanks to Yewei Xu and the Tencent team for the contribution. (Bug #109485, Bug #34930969)
  • Replication: Corrected the SQL statements suggested in the error message text for ER_RPL_REPLICA_ERROR_RUNNING_QUERY.
  • Our thanks to Dan McCombs for the contribution. (Bug #109154, Bug #34822612)
  • Replication: A hash scan builds a hash of changes, scans the target table or index, and applies any matching change for the current entry. In the build phase, it uses only the before image, and skips any after image. Problems arose in some cases because generated columns were computed for the (skipped) after image, leading to replication errors. This is fixed by not computing generated columns any longer for seek-only calls such as hash scans.
  • Our thanks to dc huang for the contribution. (Bug #107366, Bug #34198907)
  • Replication: In certain rare cases, it was possible to set gtid_mode=OFF for one session while another session, after WAIT_FOR_EXECUTED_GTID_SET() was issued by a user in this second session, was still waiting for the next GTID set from the first session. This could result in the second session waiting indefinitely for the function to return. (Bug #99921, Bug #31505993)
  • Group Replication: Accessing the Performance Schema replication_group_communication_information and replication_group_member_stats tables in parallel sometimes caused subsequent group replication operations to hang. (Bug #34870181)
  • Group Replication: In certain cases, the group replication secondary node unexpectedly shut down while purging the relay log. (Bug #34397106)
  • Group Replication: When shutting down the Group Replication plugin, the order in which the associated events were reported the error log sometimes led to confusion. To remove any doubts, we now make sure that Plugin group_replication reported: 'Plugin 'group_replication' has been stopped. is in fact the last log message relating to the shutdown, written only when all other events associated with shutting down the plugin have been logged. (Bug #109345, Bug #34887491)
  • Microsoft Windows: The authentication_fido_client plugin stopped responding during the authentication process if it was unable to find a FIDO device on the Windows client host. (Bug #34918044)
  • In certain cases, CONVERT(utf8mb3_column USING UTF16) was rejected with the error Cannot convert string 'x--...' from binary to utf16. (Bug #35129361)
  • When joining two tables on a string column, and the column from one of the tables has an additional predicate comparing it with a temporal literal, constant propagation in some cases incorrectly caused the join condition to be modified such that it used temporal rather than string semantics when comparing the strings. This caused incorrect results to be returned from the join. (Bug #35115909)
  • Error messages returned after calling the mysql_reset_connection() C API function in a prepared statement did not identify the function name properly. (Bug #35107280)
  • Fixed a regression in a previous fix for an issue with windowing functions.
  • Our thanks to Dmitry Lenev for the contribution. (Bug #35061924)
  • References: This issue is a regression of: Bug #34572136.
  • When replacing subqueries in transforms, the internal flag showing whether a given query block contains any subqueries (PROP_SUBQUERY) was not updated afterwards. (Bug #35060365)
  • A client setting the character set to an impermissible client character set (ucs2, utf16, utf16le, or utf32) could cause unexpected behavior when the client used an authentication plugin. (Bug #35054579)
  • EXPLAIN ANALYZE displayed 0 when the average number of rows was less than 1. To fix this, we now format numbers in the output of EXPLAIN ANALYZE and EXPLAIN FORMAT=TREE such that numbers in the range 0.001-999999.5 are printed as decimal numbers, and numbers outside this range are printed using engineering notation (for example: 1.23e+9, 934e-6). In addition, trailing zeroes are no longer printed, and numbers less than 1e-12 are printed as 0.
  • This helps ensure consistent precision regardless of the number's value and improve readability, while producing minimal rounding errors. (Bug #34990948)
  • The NTILE() function did not work correctly in all cases. (Bug #34986665)
  • Some joins on views did not perform correctly. (Bug #34985359)
  • Transforming a correlated scalar subquery to a derived table led to a wrong result for InnoDB tables when the subquery included duplicate predicates.
  • Fixed an assert in sql/item_strfunc.cc that could potentially lead to issues with the SPACE() function. (Bug #34962821)
  • Using ROW_COUNT() as the length argument to LPAD() or RPAD() did not perform as expected. (Bug #34961236)
  • A query with a window function having an expression with a CASE function in its ORDER BY clause could lead to a server exit. (Bug #34933045)
  • The fix for a previous issue introduced an assertion in debug builds when optimizing a HAVING clause. (Bug #34923792)
  • References: This issue is a regression of: Bug #33725415.
  • When using mysqld_multi, the system that obscures "--password" usage as "--password=*****" would also match "--password-history" and "--password-require-current" definitions as "--password", but now explicitly checks for "--password=" instead. (Bug #34918740)
  • In some cases, calling the mysql_bind_param() C API function could cause the server to become unresponsive. (Bug #34869076)
  • The authentication_oci_client plugin was unable to open a valid configuration file if any of its entries contained an equals sign character separated by spaces (for example, key_file = /home/user/.oci/oci_api_key.pem). Now, both 'key=value' and 'key = value' entry formats are supported. (Bug #34864078)
  • Incorrect results were returned when the result of an INTERSECT or EXCEPT operation was joined with another table. This issue affected these operations in such cases when used with either DISTINCT or ALL. (Bug #34843764)
  • When preparing a view query, the operation used the system character set (instead of the character set stored in data dictionary) and then reported an invalid character-string error. (Bug #34800905)
  • Prepared statements that operate on derived tables, including views, could stop unexpectedly due to problems with the code for reopening tables after an error. (Bug #34798403)
  • Removed an assertion raised in certain cases by the RANDOM_BYTES() function in debug builds. (Bug #34781507)
  • There was an issue in how persisted variables were set on startup, causing certain variables not to get properly set to their persisted value. (Bug #34751419)
  • The MAKETIME() function did not perform correctly in all cases. (Bug #34745241)
  • Some functions with multiple arguments did not produce the expected results. (Bug #34741801)
  • A table reference in an ORDER BY outside the parenthesized query block in which the table was used, and which query block had no LIMIT or ORDER BY of its own, raised an error. (Bug #34704011)
  • References: This issue is a regression of: Bug #103954, Bug #32980249.
  • A left join with an impossible condition as part of an ON clause was not optimized as in MySQL 5.7, so that in MySQL 8.0, the query executed more quickly without the impossible condition than with it. An example of such a query, impossible condition included, is SELECT * FROM t1 JOIN t2 ON t1.c1=t2.c1 AND 1=2. (Bug #34668756)
  • When a user defined function was part of a derived table that was merged into the outer query block, or was part of a subquery converted to a semi-join, knowledge of whether this UDF was deterministic (or not) was lost during processing. (Bug #34666531)
  • With JSON logging enabled and an event subclass specified in the audit log filter definition, an empty item ("" : { }) was appended to the end of the logged event. (Bug #34659904)
  • Some subqueries did not execute properly. (Bug #34616553)
  • After the asymmetric_encrypt() component function in a SELECT query encountered a NULL field to decrypt, it could return NULL values for other non-NULL encrypted fields. (Bug #34598912)
  • The server did not always shut down cleanly after uninstalling the audit log plugin. (Bug #34594035)
  • Certain antijoins were not handled correctly by the server. (Bug #34370673)
  • References: This issue is a regression of: Bug #30573446.
  • When the MySQL 5.7 Optimizer has 2 choices for an index to filter rows, one primary and one secondary, it picks a range scan on the secondary index because the range scan uses more key parts. MySQL 8.0 did not use this logic, instead choosing the primary index to filter rows with WHERE clause filtering. Primary key use is not suitable in such cases due to the presence of LIMIT, and due to the nature of data distribution. The secondary index was not considered while resolving order by due to constant elimination. This resulted in much different query plans in MySQL 5.7 and MySQL 8.0 for the same query.
  • We solve this issue in MySQL 8.0 by skipping the constant key parts of the index during order-by evaluation only if the query is constant-optimized, which can be done at this time, but not during LIMIT analysis. (Bug #34291261)
  • The MySQL data dictionary caches failed lookups of se_private_id values (IDs which are not found), which speeds up execution of code specific to InnoDB, relying on the fact that InnoDB does not reuse these IDs. This assumption does not necessarily hold for other storage engines, most notably NDB, where this problem was resolved previously by not using this cache.
  • We extend the previous fix made for NDB so that the cache lookup is now employed only when the table uses the InnoDB storage engine. (Bug #34145006)
  • References: See also: Bug #33824058.
  • Unexpected results were seen in some queries using DENSE_RANK(), possibly with the addition of WITH ROLLUP. (Bug #34099408)
  • Fixed an assert raised in sql/sql_tmp_table.cc following work done previously to reimplement ROLLUP processing. (Bug #33830659)
  • References: This issue is a regression of: Bug #30969045.
  • Some CTEs that did not use any tables were not always handled correctly. (Bug #33725542)
  • References: This issue is a regression of: Bug #27062031.
  • Accessing rows from a window frame of a window function call present only in the query's ORDER BY list raised an error. (Bug #33069747)
  • PERCENT_RANK() used with ORDER BY column did not return the correct result. (Bug #33064174)
  • References: This issue is a regression of: Bug #27484133.
  • The --exclude-tables and --include-tables mysqlpump options did not handle views. (Bug #21303549)
  • Changed the MySQL systemd service unit configuration from After=network-online.target to Wants=network-online.target to ensure that all configured network devices are available and have an IP address assigned before the service is started. (Bug #109996, Bug #35068274)
  • AVG(...) OVER (ROWS BETWEEN 1 FOLLOWING AND UNBOUNDED FOLLOWING) did not return the correct result. (Bug #109725, Bug #35013880)
  • References: This issue is a regression of: Bug #108008, Bug #34431996.
  • A query of the form SELECT 1 FROM t1 WHERE NOT EXISTS (VALUES ROW(1), ROW(2)) caused an assert in debug builds when the subquery_to_derived optimizer switch was enabled. (Bug #109723, Bug #35014318)
  • References: See also: Bug #108910, Bug #34746261.
  • mysqlimport did not escape reserved word table names when used with the --delete option. (Bug #109711, Bug #34999015)
  • When cloning a condition to push down to a derived table, characters in strings representing conditions were converted to utfmb4 correctly only for values less than 128 (the ASCII subset), and code points outside the ASCII subset were converted to invalid characters, causing the resulting character strings to become invalid. For derived tables without UNION, this led to problems when a column name from the derived table used characters outside the ASCII subset, and was used in the WHERE condition. For derived tables with UNION, it created problems when a character outside the ASCII subset was present in a WHERE condition.
  • We fix these issues by initializing the string used for representing the condition in such cases to the connection character set. (Bug #109699, Bug #34996488)
  • Using --single-transaction with mysqldump version 8.0.32 required either the RELOAD or FLUSH_TABLES privilege. This requirement now applies only when both gtid_mode=ON (default OFF) and with --set-gtid-purged = ON|AUTO (default AUTO). (Bug #109685, Bug #109701, Bug #34993824, Bug #34998910, Bug #35020512)
  • References: This issue is a regression of: Bug #105761, Bug #33630199.
  • Many joins using eq_ref access did not perform as well as in previous versions. This issue was first reported in MySQL 8.0.29. (Bug #109631, Bug #34891365)
  • Fixed a number of issues present in the internal documentation for the scramble generator algorithm in sha256_scramble_generator.cc and sha2_password_common.cc.
  • Our thanks to Niklas Keller for the contribution. (Bug #109576, Bug #34967141)
  • CREATE USER IF NOT EXISTS added a password history entry even when the user already existed and the password was not updated. This caused a subsequent ALTER USER statement to be rejected. (Bug #109415, Bug #34906592)
  • A hash outer join sometimes incorrectly matched NULL with a decimal zero or an empty string that used a non-padding collation, leading to erroneous results. (Bug #109211, Bug #34837464)
  • References: This issue is a regression of: Bug #33794977.
  • An object used internally by ALTER INSTANCE RELOAD TLS was not freed until the number of readers reached 0, under the assumption is that the number of readers should reach 0 fairly frequently. The read lock held during an SSL handshake is generally an expensive operation, with network calls, so when roundtrips between the client and the server took excessively long, the lock was held for a relatively long amount of time. This meant that, when changing the value of this object and there were a sufficient number of incoming SSL connections being made, the number of readers might not reach 0 in a reasonable length of time, leaving the thread holding the lock using 100% of the CPU until the lock was released.
  • We fix this by adding a wait after setting the pointer to this object to a new value, but before releasing the old object.
  • Our thanks to Sinisa Milivojevic for the contribution. (Bug #107567, Bug #34284186)
  • If mysqldump or mysqlpump could not convert a field's default value to UTF-8 (for instance, if the field was of type BINARY and the default value did not coincide with valid UTF-8), the operation produced results that were not valid to import. Further, using the --hex-blob option did not resolve the issue. We now convert the default value to the system character set. If this fails, the server sends the value as hexadecimal instead to make it more human-readable. (Bug #104840, Bug #33322551)
  • A connection using the C API (libmysqlclient) client library could fail with the FUTURE crypto policy. (Bug #104778, Bug #33316709)
  • While cloning a temporary table for a common table expression which used shared materialization, the cloned temp table was not marked as using hash deduplication, leading to wrong results. We now set the hash field for the cloned temporary table correctly, and update the hidden field count to take this into account. (Bug #102251, Bug #32383712)
  • References: See also: Bug #103052, Bug #32659629.
  • CREATE EVENT and ALTER EVENT assumed that all values passed to them (other than in a DO clause) resolved as scalars without actually checking the values. This led to assertions when any such values actually rows.
  • We now perform an explicit check for the number of columns when resolving such items, and report an error when one produces a row and not a scalar value. (Bug #57552, Bug #11764690)
  • A view reference whose underlying field is a constant is not marked as constant when the reference is part of an inner table of an outer join. It was found that, when pushing a condition down to a derived table, the reference was stripped off and only the underlying field was cloned, which made it a constant, and led to wrong results.
  • To fix this problem, we ensure that we do not push such a condition down to the derived table by adding a check to see first whether the table used by the condition matches the derived table or is a constant expression; only when it is one or the other of these do we actually push the condition down. (Bug #34661, Bug #11747971)

New in MySQL Workbench 8.0.32 (Jan 26, 2023)

  • Functionality Added or Changed:
  • Removed distutils support, which is deprecated as of Python 3.10 and removed in Python 3.12.
  • Adopted type hint enforcement for function and class attributes with mypy; this is compliant with PEP 8 for module mysql.connector. The integration includes a git pre-commit hook for mypy.
  • On Windows, added a kerberos_auth_mode connection option that's set to either "SSPI" (default) or "GSSAPI". This allows choosing between SSPI and GSSAPI at runtime for the authentication_kerberos_client authentication plugin on Windows. Previously, only the SSPI mode was supported on Windows. For general usage information, see Kerberos Pluggable Authentication. This connection is ignored on other platforms, such as Linux, as they only support GSSAPI.
  • Limitation: GSSAPI can't be used with the pure Python implementation on Windows using authentication with a username and password, a limitation with the C library used by the python-gssapi package used by the pure Python implementation of Connector/Python.
  • Bugs Fixed:
  • Using USE_TZ=True in the Django settings would raise this exception: ValueError: Not naive datetime (tzinfo is already set).
  • Removed debug messages that showed authentication data. (Bug #34695103)
  • Updated the protobuf version requirement to version >= 3.11.0, <=3.20.3.
  • Connecting to MariaDB could fail with an unsupported character set because the default MySQL character collection is MySQL 8.0 specific. Now the 5.7 character set is used by default, but is switched to a 8.0 character set if the queried server is version 8.0.
  • Incorrect MySQLCursor.statement values were returned with cursor.execute(query_string, multi=True) under the following conditions: The query string contained two or more queries seperated by a semicolon, and the non-first query used a literal or identifier containing either an odd number of backticks, quotes, or double quotes.
  • On Windows, changed the security support provider (SSP) from Kerberos to Negotiate. Using Negotiate will then select either Kerberos or NTLM as the SSP.
  • On Windows, the Connector/Python MSI did would not detect and install with Python 3.11. The workaround is to use pip install mysql-connector-python instead.
  • When using a prepared cursor, if a datetime column contained 00:00:00 as the time, a Python date object was returned instead of datetime.
  • The MySQLCursor.executemany() method failed to batch insert data since the regular expression (RE) sentinel did not detect batch cases correctly; this meant using the one-on-one insert instead, which led to decreased performance.
  • Added a new init_command connection option; an SQL query that's immediately executed after the connection is established.
  • Russian characters were not handled correctly by the c-ext version's X DevAPI driver. String values are now encoded to their byte string representation before being sent to protobuf.
  • When fetching results from a prepared cursor using the pure Python implementation, it would fail if the VARBINARY column contained bytes that could not be decoded. The bytes are now returned if they cannot be decoded.
  • Fixed multiple reference leaks and removed redundant code.
  • The cursors (both pure and c-ext versions) uses a single SELECT query to retrieve procedure result parameters after a procedure call; but one SET call was used per parameter when setting the input parameters. This was optimized to always use a single SET call for one or multiple parameters.
  • Improved warning handling throughout the connector.
  • Added a new MySQLCursorPreparedDict class option that is similar to MySQLCursorPrepared; the difference is that the former returns a fetched row as a dictionary where column names are used as keys while the latter returns a row as a traditional record (tuple).
  • Enable the use of dictionaries as parameters in prepared statements using the '(param)s' format as placeholders.
  • Using MySQLConverter.escape() on datetime objects raised this error: TypeError: an integer is required. Now it does not attempt to escape values that are not bytes or string types.
  • Not all parameters were added to the INSERT statement when using INSERT IGNORE with cursor.executemany().

New in MySQL Workbench 8.0.30 (Jul 26, 2022)

  • Character Set Support
  • Compilation Notes
  • Deprecation and Removal Notes
  • Generated Invisible Primary Keys (GIPKs)
  • Keyring Notes
  • Pluggable Authentication
  • Security Notes
  • Spatial Data Support
  • SQL Syntax Notes
  • XA Transaction Notes
  • Functionality Added or Changed
  • Bugs Fixed

New in MySQL Workbench 8.0.29 (Apr 26, 2022)

  • Audit Log Notes:
  • The new audit_log_disable system variable permits disabling audit logging for all connecting and connected sessions. See Disabling Audit Logging.
  • C API Notes:
  • Building C API client programs on Windows using Clang as the compiler returned various compiler warnings, including an unused variable warning. (Bug #33520805, Bug #33520861)
  • Character Set Support:
  • Incompatible Change: CONVERT(string USING charset) did not compute the correct maximum length for its return value, which should be the same as that calculated for CAST(string AS charset). This meant that some conversions of strings from BINARY to nonbinary character sets which should have been rejected as invalid returned values instead.
  • Prior to upgrading, applications that may rely on the previous CONVERT() behavior should be checked and updated as necessary. In particular, for indexes on generated columns using CONVERT() with invalid values, you should correct such values, drop the index, then re-create it before upgrading to this release. In some cases, it may be simpler to rebuild the table using ALTER TABLE table FORCE, rather than dropping and re-creating the index. See SQL Changes, for more information. (Bug #33199145)
  • The output from EXPLAIN FORMAT=TREE hex-encoded ranges for multi-valued indexes, even when the data type was not a binary one. In addition, ranges using string types were also printed with hex-encoded values, when they had a binary collation. The latter issue also affected regular indexes, but was more visible with multi-valued indexes, since these always use utf8mb4_0900_bin collation. Now, hex-encoding is used only for string types having a binary character set. Strings with non-binary character sets are now printed in EXPLAIN FORMAT=TREE output as plain text, with escaping for any special characters. (Bug #33343948)
  • For some functions, the resolved character set was not always the same as the character set of the first argument. (Bug #32668730, Bug #33238711)
  • Compilation Notes:
  • InnoDB: Compilation issues associated with the following MSVC++ level 4 compiler warnings were addressed: C4201, C4701, C4702, C4703, C4706. The compiler warnings, which were previously disabled, are now enabled. (Bug #33464699)
  • InnoDB: MSVC++ level 4 compiler warnings were enabled. (Bug #33437498)
  • InnoDB: An access violation occurred when building a debug version of MySQL using Visual Studio 2019 version 16.10 or version 16.11. The violation was due to an STL iterator bug. (Bug #33223243)
  • Binary packages that include curl rather than linking to the system curl library have been upgraded to use curl 7.80.0. (Bug #33576431)
  • Data Type Notes:
  • This release fixes the following two issues relating to date and time values:
  • Inserting a CHAR value such as '12:00:00' into a DATE, DATETIME, or TIMESTAMP column raised the wrong error. In the case of a DATE column, this error was similar to Data truncation: Incorrect date value: '2012-00-00' for column 'd' at row 1. This occurred for both the binary and text protocols.
  • Inserting a value with an offset into a DATE or TIME column using the binary protocol gave a wrong result. For example, when the connection time zone was set to GMT-5, inserting '2021-10-10 00:00:00.123+01:00' into a TIME column yielded '18:00:00'; that is, the value was converted to the connection time zone (this should be done only with respect to DATETIME columns).
  • We fix these by recognizing and adjusting for time zone offsets whenever a TIMESTAMP value with a time zone offset is inserted into a TIME or DATE column. (Bug #33616957, Bug #33649009)
  • References: See also: Bug #33539844.
  • A fix in MySQL 8.0.27 for a previous issue changed the resolved type of a boolean expression from signed INT to unsigned BIGINT in order to simplify type handling, but what appeared then as a harmless metadata change turned out to cause problems for some of the MySQL Connectors.
  • We now revert the metadata change and provide a different fix for the original problem, by adjusting the max_length for the negation of an integer to at least two characters. (Bug #33516898)
  • References: This issue is a regression of: Bug #33117410.
  • Sorts of some column types, including JSON and TEXT, sometimes exhausted the sort buffer if its size was not at least 15 times that of the largest row in the sort. Now the sort buffer need only be only 15 times as large as the largest sort key. (Bug #103325, Bug #105532, Bug #32738705, Bug #33501541)
  • References: This issue is a regression of: Bug #30400985, Bug #30804356.
  • Deprecation and Removal Notes
  • The shortcuts ASCII for CHARACTER SET latin1 and UNICODE for CHARACTER SET ucs2 are now deprecated, and you should expect their removal in a future version of MySQL. Using either of these now raises a warning; use CHARACTER SET instead.
  • The character sets listed here, along with all of their collations, are now deprecated, and subject to removal in a subsequent release of MySQL:
  • ucs2
  • macroman and macce
  • dec
  • hp8
  • The use of any of these character sets or their collations in SQL statements or elsewhere in the MySQL server now produces a deprecation warning.
  • You should use utf8mb4 instead of any of the character sets just listed. See also The ucs2 Character Set (UCS-2 Unicode Encoding), West European Character Sets, and Central European Character Sets.
  • Event Scheduler Notes:
  • As a previous convenience, the server automatically restarted the Event Scheduler as needed when the super_read_only system variable was disabled. Now this same convenience is applied independently when the read_only system variable is disabled. Prior to this update, disabling read_only could also disable super_read_only if needed, but because the code was separate, the Event Scheduler was not restarted. (Bug #33539082)
  • Full-Text Search Notes:
  • Due to the fact that, as implemented, MATCH() does not act as a function of its arguments, but rather as a function of the row ID of the current row in the underlying scan of the base table, a query using a rollup column as the argument to this function tended to perform poorly, and with unreliable results. This being the case, the use of a rollup column with MATCH() is no longer permitted whenever the following conditions are true:
  • MATCH() appears in the SELECT list, GROUP BY clause, HAVING clause, or ORDER BY clause.
  • The query uses GROUP BY ... WITH ROLLUP.
  • A grouping column is used as the argument to MATCH().
  • Any such queries are now rejected with ER_FULLTEXT_WITH_ROLLUP. (The use of MATCH() with a rollup column in the WHERE clause is not affected by this change, and is still permitted.)
  • For more information, see Full-Text Search Functions. (Bug #32565923, Bug #32996762)
  • SQL Function and Operator Notes:
  • Important Change: When using prepared statements, the DATE_ADD() and DATE_SUB() functions returned DATETIME values, even when calculations involved combinations of YEAR, MONTH, or DAY parts only (that is, no time parts).
  • Previous to implementing single preparation of prepared statements in MySQL 8.0.22, TIME values were returned in such cases; before this was done, values used as arguments and their types were used to determine the result type of certain temporal functions at resolution time, such as DATE_ADD(), DATE_SUB(), and ADDTIME(). Afterwards, user variable references and dynamic parameters are considered constant for the lifetime of one execution only, requiring that the return type be determined in another fashion, in this case from the function type. For example, the default resolved type for DATE_ADD() was deemed to be DATETIME if the first argument was a dynamic parameter, since DATETIME accomodates all temporal values and thus an implicit reprepare can be avoided.
  • The change just described represents a regression; the problem is better solved by deriving a more precise resolved data type, and performing a reprepare only if that does not match the actual value of the parameter. (Such functionality was already in use in the MySQL server for numeric parameters.) This solution is implemented by this fix.
  • We now parse string and numeric values when temporal values are expected. When a valid temporal value is found, the value is converted. This fix also improves determination of resolved data types for temporal functions.
  • With this fix, the DATE_ADD() and DATE_SUB() functions (and their synonyms functions ADDDATE() and SUBDATE()) resolve types as follows:
  • If the first argument is a dynamic parameter, its resolved type is DATE if the second argument is an interval that contains some combination of YEAR, MONTH, or DAY values only; otherwise, its type is DATETIME.
  • If the first argument is resolved as DATETIME, the resolved type of the function is also DATETIME.
  • If the first argument is a DATE, the resolved type of the function is also DATE, unless the interval argument uses HOUR, MINUTE, or SECOND, in which case it is DATETIME.
  • If the first argument is a TIME value, the resolved type is also TIME, unless the interval argument uses any of YEAR, MONTH, or DAY, in which case the resolved type of the function is DATETIME.
  • If none of the preceding conditions are met, the function is resolved as VARCHAR (as in MySQL 8.0.21 and earlier).
  • The ADDTIME() and SUBTIME() functions now resolve types as follows:
  • If the first argument is a dynamic parameter, the resolved type is TIME, rather than DATETIME.
  • Otherwise, the resolved type of the function is derived from the resolved type of the first argument.
  • In addition, for DATE_ADD() and DATE_SUB(), if the resolved type of the first argument is DATE, and a DATETIME value is provided, the statement is reprepared so that the function has the resolved type DATETIME. Behavior is unchanged when a TIME value is provided.
  • For ADDTIME() and SUBTIME(), there are no forced reprepares. (Bug #103781, Bug #32915973, Bug #33477883, Bug #33539844)
  • Previously, loadable functions and stored functions shared the same namespace and could not have the same name. A subsequent implementation change eliminated the reason to share the same namespace and permitted a stored function to be created with the same name as an existing loadable function. To invoke the stored function, it is necessary to qualify it with a schema name. The server now generates a warning if the stored function name collides with an existing loadable function name. (Bug #33301931)
  • Queries making use of the MBRContains() function did not employ all available spatial indexes. (Bug #32975221)
  • References: This issue is a regression of: Bug #29770705.
  • The FORMAT() function returned a formatted number without showing the thousands separator and grouping between separators when either the es_ES or es_MX locale was specified. (Bug #31374305)
  • The result length of the GROUP_CONCAT() function was wrong when the value of group_concat_max_len was increased. With a small group_concat_max_len value, the result was correct. This issue was caused by arithmetic overflow.
  • Our thanks to Hope Lee for the contribution. (Bug #105380, Bug #33521497)
  • Optimizer Notes:
  • For a query, a range scan can be picked first and the optimizer decide that the same range scan can be used to skip ordering. In some cases, when the requested order is not the same as the index order, a reverse index scan is required. If the requested ordering is on the key part that is not already used by the range scan, we update the number of used key parts for the range scan to reflect the change. The issue occurred because the key part information was not also updated, and when it was necessary to access key part information based on the number of key parts used.
  • We also now note when a reverse scan uses extended key parts, and set the correct flags for evaluation accordingly. (Bug #33615893)
  • References: This issue is a regression of: Bug #33037007.
  • In both optimizer trace and EXPLAIN FORMAT=TREE output, date ranges were printed as binary. Now in such cases we print temporal values as quoted strings. (Bug #33335079)
  • When a condition was pushed down, the result of evaluating assignments to user variables in the SELECT list of the subquery were sometimes affected. For this reason, we now prevent condition pushdown for statements with assignments to user variables.
  • Our thanks to Casa Zhang and the Tencent team for the contribution. (Bug #104918, Bug #33341080)
  • When the join buffer was set to certain arbitrary sizes, the number of chunk files created for hash joins was too small. This meant that each file contained more rows than could fit in the join buffer, so that the probe chunks needed to be read multiple times. This was caused by using integer division when computing how many chunk files are needed; we fix this by using floating-point division instead.
  • Our thanks to Øystein Grøvlen for the contribution. (Bug #104186, Bug #33073354)
  • A query using aggregation on a BIT type could return different results depending on the indexes or join type employed. This was due to the fact that a DML statement using such an aggregation caches the BIT values using an integer type, and later looks up and converts to a string format for output. The current issue arose because this lookup treated the BIT value as an integer, resulting in an incorrect string value.
  • This is fixed by adding a new internal class for cached BIT values which can convert bit values to string formats correctly.
  • Our thanks to Hope Lee for the contribution. (Bug #100859, Bug #31894023)
  • When a DML statement containing an outer DISTINCT query with a subquery inside a HAVING clause, the inner subquery attempts to use a column reference for a column from the outer DISTINCT query, but this should be allowed only if the subquery is used somewhere outside of the HAVING, or if the outer SELECT does not use grouping. The current issue came about because such a query was allowed to run even though neither of these conditions were met.
  • To fix this, the column reference check is expanded to detect an invalid column reference of this sort, and to return an error if it does.
  • Our thanks to Song Zhibai for the contribution. (Bug #97742, Bug #30617496)
  • Packaging Notes
  • The GnuPG build key used to sign MySQL downloadable packages has been updated. The previous GnuPG build key is set to expire on 2022-02-16. For information about verifying the integrity and authenticity of MySQL downloadable packages using GnuPG signature checking, or to obtain a copy of our public GnuPG build key, see Signature Checking Using GnuPG.
  • Due to the GnuPG key update, systems configured to use repo.mysql.com may report a signature verification error when upgrading to MySQL 5.7.37 and higher or to MySQL 8.0.28 and higher using apt or yum. Use one of the following methods to resolve this issue:
  • Manually reinstall the MySQL APT or YUM repository setup package from https://dev.mysql.com/downloads/.
  • Download the MySQL GnuPG public key and add it your system GPG keyring.
  • For MySQL APT repository instructions, see Appendix A: Adding and Configuring the MySQL APT Repository Manually.
  • For MySQL YUM repository instructions, see Upgrading MySQL with the MySQL Yum Repository.
  • (Bug #33587308)
  • Performance Schema Notes:
  • A new statement metric, CPU_TIME, is now available, enabling you to measure the CPU time spent on a query.
  • The following changes were made to support this:
  • A timer, THREAD_CPU, was added to the Performance Schema PERFORMANCE_TIMERS table.
  • A consumer, events_statements_cpu was added to the Performance Schema setup_consumers table.
  • events_statements_cpu is disabled by default.
  • A Performance Schema command option, performance-schema-consumer-events-statements-cpu to enable or disable the consumer, events_statements_cpu.
  • See Performance Schema Command Options for more information.
  • The following columns were added:
  • CPU_TIME column was added to the following Performance Schema tables:
  • events_statements_current
  • events_statements_history
  • events_statements_history_long
  • CPU_TIME is the time spent on CPU for the current thread, expressed in picoseconds.
  • SUM_CPU_TIME column was added to the following Performance Schema tables:
  • events_statements_summary_by_thread_by_event_name
  • events_statements_summary_by_account_by_event_name
  • events_statements_summary_by_user_by_event_name
  • events_statements_summary_by_host_by_event_name
  • events_statements_summary_global_by_event_name
  • events_statements_summary_by_digest
  • events_statements_summary_by_program
  • prepared_statements_instances
  • SUM_CPU_TIME is the CPU time spent on the current thread, expressed in picoseconds, for the corresponding aggregations.
  • CPU_LATENCY column was added to the following sys schema tables:
  • statement_analysis
  • user_summary_by_statement_type
  • user_summary_by_statement_latency
  • host_summary_by_statement_type
  • host_summary_by_statement_latency
  • processlist
  • session
  • CPU latency is the CPU time spent on the current thread, expressed in human-readable form.
  • CPU_LATENCY column was added to the following sys schema x$ tables:
  • x$statement_analysis
  • x$user_summary_by_statement_type
  • x$host_summary_by_statement_type
  • x$processlist
  • x$session
  • x$user_summary_by_statement_latency
  • x$host_summary_by_statement_latency
  • CPU latency is the CPU time spent on the current thread, expressed in picoseconds.
  • Our thanks to Facebook for their contribution to this fix. (Bug #32202060, Bug #101764)
  • Functionality Added or Changed:
  • Important Change: The number of distinct windows which can appear in a given SELECT is now limited to 127. The number of distinct windows is the sum of the named windows and the implicit windows specified as part of any window function's OVER clause.
  • In order to use a large number of windows, it may be necessary to increase the value of the thread_stack server system variable. (Bug #33279604)
  • InnoDB: InnoDB now supports ALTER TABLE ... RENAME COLUMN operations using ALGORITHM=INSTANT.
  • Operations that support ALGORITHM=INSTANT only modify metadata in the data dictionary. No exclusive metadata locks are taken on the table during preparation and execution phases of the operation, and table data is unaffected, making the operations instantaneous. If not specified explicitly, ALGORITHM=INSTANT is used by default by DDL operations that support it.
  • For more information about this and other DDL operations that support ALGORITHM=INSTANT, see Online DDL Operations.
  • It is theoretically possible for a user with sufficient permissions using MySQL Enterprise Audit to mistakenly create an “abort” item in the audit log filter that prevents themselves and other administrators from accessing the system. From MySQL 8.0.28, the AUDIT_ABORT_EXEMPT privilege is available to permit a user account’s queries to always be executed even if an “abort” item would block them. Accounts with this privilege can therefore be used to regain access to a system following an audit misconfiguration. The query is still logged in the audit log, but instead of being rejected, it is permitted due to the privilege.
  • Accounts created in MySQL 8.0.28 or later with the SYSTEM_USER privilege have the AUDIT_ABORT_EXEMPT privilege assigned automatically when they are created. The AUDIT_ABORT_EXEMPT privilege is also assigned to existing accounts with the SYSTEM_USER privilege when you carry out an upgrade procedure with MySQL 8.0.28 or later, if no existing accounts have that privilege assigned.
  • Support for the TLSv1 and TLSv1.1 connection protocols is removed as of MySQL 8.0.28. The protocols were deprecated from MySQL 8.0.26. For background, refer to the IETF memo Deprecating TLSv1.0 and TLSv1.1. Make connections using the more-secure TLSv1.2 and TLSv1.3 protocols. TLSv1.3 requires that both the MySQL Server software and the client application were compiled with OpenSSL 1.1.1 or higher.
  • From MySQL 8.0.28, client programs, including MySQL Shell, that support a --tls-version option for specifying TLS protocols for connections to the MySQL server cannot make a TLS/SSL connection with the protocol set to TLSv1 or TLSv1.1. If a client attempts to connect using these protocols, for TCP connections, the connection fails, and an error is returned to the client. For socket connections, if –ssl-mode is set to REQUIRED, the connection fails, otherwise the connection is made but with TLS/SSL disabled.
  • On the server side, the following settings are changed from MySQL 8.0.28:
  • The default values of the server’s tls_version and admin_tls_version system variables no longer include TLSv1 and TLSv1.1.
  • The default value of the Group Replication system variable group_replication_recovery_tls_version no longer includes TLSv1 and TLSv1.1.
  • For asynchronous replication, replicas cannot set the protocol for connections to the source server to TLSv1 or TLSv1.1 (the SOURCE_TLS_VERSION option of the CHANGE REPLICATION SOURCE TO statement).
  • The tmp_table_size variable now defines the maximum size of individual in-memory internal temporary tables created by the TempTable storage engine. An appropriate size limit prevents individual queries from consuming an inordinate amount global TempTable resources. See Internal Temporary Table Storage Engine.
  • The innodb_open_files variable, which defines the number of files InnoDB can have open at one time, can now be set at runtime using a SELECT innodb_set_open_files_limit(N) statement. The statement executes a stored procedure that sets the new limit.
  • To prevent non-LRU manged files from consuming the entire innodb_open_files limit, non-LRU managed files are now limited to 90 percent of the innodb_open_files limit, which reserves 10 percent of the innodb_open_files limit for LRU managed files.
  • The innodb_open_files limit now includes temporary tablespace files, which were not counted toward the limit previously.
  • The functions FROM_UNIXTIME(), UNIX_TIMESTAMP(), and CONVERT_TZ() now handle 64-bit values on platforms that support them, including 64-bit versions of Linux, MacOS, and Windows.
  • On compatible platforms, FROM_UNIXTIME() now accepts a maximum argument of 32536771199.999999 seconds, corresponding to '3001-01-18 23:59:59.999999' UTC (including the optional fraction of up to 6 digits). If the argument is larger than this, the function returns NULL.
  • On compatible platforms, UNIX_TIMESTAMP() now accepts a maximum value of '3001-01-18 23:59:59.999999' UTC, corresponding to 32536771199.999999 seconds since the Unix Epoch. If the argument is larger than this, the function returns 0.
  • In addition, on compatible platforms, CONVERT_TZ() now performs time zone conversion beyond 2038, up to '3001-01-18 23:59:59.999999' UTC. If the datetime argument exceeds this value, the argument is returned unchanged. This “no-op” behavior is the same as previously with values beyond '2038-01-19 03:14:07.999999' UTC.
  • The behavior of these 3 functions on 32-bit platforms is unchanged.
  • The behavior of the TIMESTAMP type is also unaffected by this change; its maximum allowed value remains '2038-01-19 03:14:07.999999' UTC, regardless of platform. For dates futureward of this, use the MySQL DATETIME type instead.
  • This release introduces monitoring and limiting of memory allocation on a global and per-user basis. You can now observe the total memory consumed by all user connections by checking the value of the Global_connection_memory status variable, which must be enabled by setting global_connection_memory_tracking = 1.
  • The total includes memory used by system processes, or by the MySQL root user, although these users are not subject to disconnection due to memory usage.
  • Memory used by the InnoDB buffer pool is not included in the total.
  • You can control indirectly how often the status variable is updated by adjusting connection_memory_chunk_size; Global_connection_memory is updated only when the total memory usage varies by more than this amount.
  • You can specify limits on resource consumption per user connection by setting connection_memory_limit; any user whose memory usage exceeds this amount cannot issue additional queries. You can also impose a global memory limit by setting global_connection_memory_limit. Whenever Global_connection_memory exceeds the global limit, no regular users can issue new queries requiring memory usage. System users such as MySQL root are not bound by these limits.
  • Bugs Fixed:
  • InnoDB: The minimum I/O buffer size calculated during an index creation operation did not align with the I/O block size, permitting a record to exceed the buffer boundary. (Bug #33570629)
  • InnoDB: The sync_array_detect_deadlock algorithm used by the semaphore deadlock checker in debug builds was simplified in terms of code and time complexity, and an implementation of the algorithm was introduced for use in release builds. (Bug #33538505)
  • InnoDB: The ut::make_unique library function in the InnoDB sources now permits specifying the type of field allocated. (Bug #33538461)
  • InnoDB: A Performance Schema instrumentation was added for tracking redo log buffer memory allocations. (Bug #33527660)
  • InnoDB: Warnings printed to the error log for long semaphore waits did not provide information about the latch owner. (Bug #33509386)
  • InnoDB: A latch release and reacquisition mechanism was introduced to reduce the amount of time that threads spend in critical sections protected by a global lock system latch. (Bug #33502610, Bug #33563523)
  • InnoDB: A hole punch operation on Windows caused a failure. The operation was performed as an overlapped (asynchronous) operation, which requires a OVERLAPPED structure containing a handle to an event object. The OVERLAPPED structure was not provided. (Bug #33496778)
  • InnoDB: The ut_time() infrastructure in the InnoDB sources was replaced with a type-checked standard library implementation. (Bug #33460092)
  • InnoDB: Numerous Trying to access missing tablespace errors were printed to the error log following a restore operation. (Bug #33437625)
  • InnoDB: Performance Schema aware ut::make_unique and ut::make_shared memory management library functions were added to the InnoDB sources. Similar functions (ut::make_unique_aligned and ut::make_shared_aligned) were added for types with extended alignment. (Bug #33420694)
  • InnoDB: The buf_validate() function in the InnoDB sources was optimized, improving performance on debug builds.
  • Thanks to Hobert Lu for the contribution. (Bug #33417058, Bug #104967)
  • InnoDB: On a NUMA-enabled system, the page size of memory chunks allocated to the buffer pool did not align with the system page size in certain scenarios, causing in the following error: Failed to set NUMA memory policy of buffer pool page frames to MPOL_INTERLEAVE. (Bug #33406701)
  • References: This issue is a regression of: Bug #32714144.
  • InnoDB: Two instances of std::unique_ptr with mem_heap in the InnoDB sources now use the Scoped_heap() wrapper, which uses a stateless function object instead of a pointer to a function. (Bug #33405520)
  • InnoDB: The m_end_range flag in the prebuilt struct, which is set to true when the end of the range is exceeded while populating the prefetch cache, was not set to false when the prefetch cache was reset (initialized). As a result, in cases where the end of the range is not exceeded and the handler is reused, the m_end_range flag could be set incorrectly the next time the prefect cache is used. (Bug #33384537)
  • InnoDB: Column metadata in the data dictionary was not updated when a new table ID was assigned to a table after discarding the table's tablespace during a table import operation. (Bug #33319149)
  • InnoDB: Setting the innodb_interpreter debug-only system variable to NULL caused a failure. (Bug #33316661)
  • InnoDB: Full-text index creation file management was improved. (Bug #33270893)
  • InnoDB: An update operation that inserted a new row into a temporary table used for aggregation caused the temporary table to be moved to disk and the update operation to be retried on the new on-disk temporary table. A BLOB pointer in the record data prepared before the temporary table was moved to disk was rendered stale, causing a failure. (Bug #33242407)
  • InnoDB: Memory allocation is now performed by a new standards-compliant custom memory allocator which is compatible with Performance Schema. (Bug #33159210)
  • InnoDB: A race condition between threads attempting to deinitialize and initialize statistics for the same table raised and assertion failure. (Bug #33135425)
  • InnoDB: An innodb_flush_log_at_trx_commit setting other than 1 or a long running transaction could have resulted in an inconsistent rate of redo log flushing. (Bug #33128461)
  • InnoDB: Allocation of large pages is now handled by a library designed to handle this. In cases where the large page allocation mechanism cannot be used, a fallback mechanism allocates regular aligned pages. Fallback can occur when large page address space is exhausted, when large page support is disabled by the underlying hardware or operating system architecture, or when large page support in MySQL is disabled explicitly (--large-pages=0). Occurrences of ut_allocator functions for allocation and deallocation of large pages have been replaced by the new library functions. (Bug #33119009, Bug #33118309, Bug #33149501, Bug #32135935)
  • InnoDB: Handling of regular 4K page-aligned allocations is now performed by a self-contained library which is compatible with Performance Schema. (Bug #33118362)
  • InnoDB: Functions belonging to a new InnoDB library responsible for dynamic storage management of suitably aligned types has replaced the functions previously used for this purpose. (Bug #33110341)
  • InnoDB: Dynamic allocation of suitably aligned types is now handled by a library which is compatible with Performance Schema. (Bug #33110312)
  • InnoDB: While a purge thread was freeing LOB pages at end of a purge batch, a required index data structure was freed, causing a failure. (Bug #32918325)
  • InnoDB: Inconsistencies in Performance Schema instrumentation logic for dynamic memory management functions (ut_* functions) were addressed. (Bug #32715466)
  • InnoDB: InnoDB dynamic allocation routine limitations prevented dynamic allocation of an array of constructible types. The limitations have been addressed, permitting allocation of default constructible types, non-default constructible types, and types that are both default and non-default constructible. (Bug #32714047)
  • InnoDB: When using READ COMMITTED or READ UNCOMMITTED, certain queries executed on a table inside of a trigger or function prevented concurrent transactions on the same table. The acquired locks were too restrictive. (Bug #32636792)
  • InnoDB: Hole punch functionality was not working as expected for tablespace pages that were encrypted and compressed, for most pages on Windows, and for Windows volumes that do not implement Microsoft volume management functions. (Bug #32136255)
  • Partitioning: Creating a table with nondeterministic functions in generated column expressions should not be possible, but this was not enforced in all cases; a series of one or more ALTER TABLE statements could be employed to arrive at a partitioned table with one or more such generated columns. When attempting to execute the CREATE TABLE statement obtained by running SHOW CREATE TABLE against this table, MySQL rejected the statement with a misleading error message referring to the partitioning expression rather than to the problematic column, despite the fact that the partitioning expression itself was legal.
  • This was caused by the result of a check for any unsafe expressions defined for a generated column (in the internal variable thd->safe_to_cache_query), which was later checked again without being cleared while parsing the partition expression, leading to an error even when the partition expression did not refer to the problematic generated column expression. Now in such cases, we reset thd->safe_to_cache_query before parsing the partition function.
  • The issue of allowing the use of certain nondeterminstic functions (AES_ENCRYPT(), AES_DECRYPT(), RANDOM_BYTES()) in generated columns is handled separately. (Bug #29268656)
  • References: See also: Bug #32592320.
  • Partitioning: A query using an index other than the primary key of a partitioned table sometimes resulted in excessive CPU load. (Bug #104576, Bug #33238010)
  • Replication: Group Replication could stop unexpectedly during the auto-rejoin procedure while the Performance Schema replication group member statistics table was being checked. The concurrency of the operations is now handled correctly. (Bug #33609089)
  • Replication: Group Replication’s selection process for a group member to be the donor for distributed recovery involves the use of the standard random selector defined for the operating system. If this random device was not available and an exception was thrown, the joining member’s joining process stopped. Group Replication now takes this possibility into account and uses a fallback random selector if the one on the operating system returns an error. (Bug #33596124)
  • Replication: A PURGE BINARY LOGS statement could be issued while the instance was locked for backup, which contravened the rules of the backup lock by removing files from the server. The statement now cannot be used while a LOCK INSTANCE FOR BACKUP statement is in effect. (Bug #33437026)
  • Replication: The STOP GROUP_REPLICATION statement stops asynchronous replication channels on the group member, but it does not implicitly commit transactions that are in progress on them like STOP REPLICA does. This is because on a Group Replication group member, an additional transaction committed during the shutdown operation would leave the member inconsistent with the group and cause an issue with rejoining. The server is left in a read-only state after the operation is completed. This situation leads to failed commits for transactions that are in progress while stopping Group Replication, so to avoid these, the STOP GROUP_REPLICATION statement now cannot be issued while a GTID is assigned as the value of the gtid_next system variable. (Bug #33412483)
  • Replication: An expelled group member that was rejoining a group using Group Replication’s auto-rejoin procedure reported its state as RECOVERING too early on, while it was still collecting information from other group members and before the compatibility checks were complete. The state change is now carried out while the view is being installed, which is the point where the rejoining member is actually accepted as a group member. (Bug #33380840)
  • Replication: Replication stopped with an error when reading a table map event if the name of the table or database was over 64 bytes – the limit is 64 characters, so the use of multi-byte characters could cause this situation. The replica now no longer checks the size of the table and database names, and supports the transmission of longer names. (Bug #33305975, Bug #104798)
  • Replication: A lock conflict could occur if the Performance Schema table replication_applier_status_by_worker was queried while a STOP REPLICA command was in progress. The issue has now been resolved. (Bug #33290947)
  • Replication: From MySQL 8.0.26, new versions of the plugins that implement semisynchronous replication are supplied to replace the terms “master” and “slave” with “source” and “replica”. Following this, the UNINSTALL PLUGIN statement incorrectly allowed the old versions of the plugins, rpl_semi_sync_master and rpl_semi_sync_slave, to be uninstalled when replication channels were currently using them. The issue has now been fixed. (Bug #33270401)
  • Replication: When the PAD_CHAR_TO_FULL_LENGTH SQL mode was enabled on a replica server, trailing spaces could be added to a replication channel’s name in the replication metadata repository tables, resulting in errors in replication operations that identified the channel using that data. The issue has now been fixed in MySQL 8.0 by using VARCHAR for character columns, and in MySQL 5.7 by disabling the SQL mode when reading from those tables. Thanks to Brian Yue for the contribution. (Bug #33213841)
  • Replication: If a replica was disconnecting while a SHOW REPLICAS statement was being issued, the server was able to access deleted data. (Bug #33206343, Bug #104566)
  • Replication: In Group Replication, if a SET gtid_next statement is used on a group member to set the GTID for the next transaction, it is possible for the same GTID to be used for a transaction that starts concurrently on another member. If both transactions reach the commit stage, the second one in the total order is rolled back, resolving the situation. However, when the transaction consistency level for Group Replication (the group_replication_consistency system variable) was set to BEFORE or BEFORE_AND_AFTER, members could reach a deadlock with one holding ownership of a GTID in the gtid_owned set, and another waiting for ownership to be released before committing the transaction. The wait function now only considers the GTIDs for committed transactions and not the GTIDs that are owned but not committed, except where a session owns a GTID that is concurrently committed, in which case the executing session errors out. (Bug #33051454, Bug #104096)
  • Replication: If a replica server with the system variable replica_preserve_commit_order = 1 set was used under intensive load for a long period, the instance could run out of commit order sequence tickets. Incorrect behavior after the maximum value was exceeded caused the applier to hang and the applier worker threads to wait indefinitely on the commit order queue. The commit order sequence ticket generator now wraps around correctly. Thanks to Zhai Weixiang for the contribution. (Bug #32891221, Bug #103636)
  • Replication: The group communication engine for Group Replication (XCom, a Paxos variant) now logs more information in the situation where the existing group members have difficulty in communicating with a joining member, for example due to network issues. This can result in the group remembering an old incarnation of the joining member and not allowing it to attempt to join again. (Bug #32873315)
  • Replication: Group Replication’s Group Communication System (GCS) now differentiates in its records of expelled members between those that had successfully joined the group, and those that never did manage to join the group. (Bug #32630484)
  • Replication: A race condition occurred if the Group Replication group member statistics in the Performance Schema were queried when Group Replication was being started or stopped. (Bug #32392468)
  • Replication: The replication receiver thread stopped with an error if the replication source server sent a heartbeat event containing a binary log file position that was above the 4GB offset, due to the large size of the binary log file. A new heartbeat event (Heartbeat_log_event_v2, log event type 41) that handles the larger value correctly has been added for use in this situation. (Bug #29913991)
  • Microsoft Windows: On Windows, added missing debug and test suite binaries for MySQL Server (commercial) and MySQL NDB Cluster (commercial and community). (Bug #32713189)
  • JSON: When the first argument passed to JSON_TABLE() was a row instead of a single JSON value, an assertion was raised while trying to evaluate the row expression. We fix this by raising an error during function resolution if the first argument is a row, so that the row expression itself is never evaluated. (Bug #33414235)
  • Using LPAD() or RPAD() in the expression for a generated column led to corrupted indexes on the parent table. (Bug #33661337)
  • References: See also: Bug #32668730, Bug #33238711.
  • In some cases where warnings were issued, rows were missing from the results of aggregation using a temporary table. (Bug #33603911)
  • For openSUSE 15, added the libtirpc rpcgen build requirement in mysql.spec to now use TI-RPC. (Bug #33582982)
  • An UPDATE statement acting on multiple tables sometimes adds elements to a list each time it is executed. Elements were never removed from this list, which increased the memory footprint for each execution of the statement. We fix this by clearing the element list following execution. (Bug #33574408)
  • The size of the HOST column of the Performance Schema processlist table is increased from VARCHAR(255) to VARCHAR(261). (Bug #33570218)
  • A keyring migration failure due to an OpenSSL error raised an assertion. The SSL error state was not flushed from the thread's OpenSSL error queue. (Bug #33546207)
  • A process listing function call caused a failure. (Bug #33511690)
  • The commercial Debian server packages contained two testing plugins (component_test_page_track_component.so and component_test_global_priv_registration.so); they were moved to the separate and optional testing package. (Bug #33504443)
  • For Fedora, increased the release package version number from 1 to 10; this to help eliminate potential installation related problems with native Fedora dnf/yum packages of the same version. (Bug #33504443)
  • Increased compat level to 11 for Debian-based packages as the previous level of 9 is deprecated; and replaced calls to dh_systemd_enable + dh_systemd_start with dh_installsystemd to satisfy requirements for compatibility level 10+. (Bug #33458752)
  • A delete operation involving a full-text search query caused a failure. (Bug #33455243)
  • An improperly handled error caused a startup failure when using the keyring_okv plugin. (Bug #33449117)
  • For Debian, added a mysql-community-server dependency to the mysql-community-server-debug package so as to pull in all required packages needed by the debug build. (Bug #33426737)
  • For virtual generated columns of type DECIMAL, we now always store some data, so that we avoid undefined behavior when trying to convert the field buffer to a decimal value. (Bug #33424846)
  • MySQL now supports pushing a condition down to a derived table when an expression from the underlying derived table contains a variable set by a stored procedure. (Bug #33423394)
  • tls_version and admin_tls_version settings are now validated server startup. (Bug #33390209)
  • The admin_tls_version variable accepted an invalid value. (Bug #33389818)
  • If two or more deprecated system variables were persisted using a SET PERSIST statement, when the server was restarted, a deprecation warning was only logged for the first of the deprecated system variables. (Bug #33388488)
  • For an index range scan whose key parts are equal, the range is now shown as an equality. For example, a = 3 is now displayed, instead of 3 <= a <= 3 previous to this change. (Bug #33351123)
  • Replaced /var/run references with /run as /var/run usage is deprecated for tmpfiles.d configuration files. The symlink from /var/run to /run remains to keep current setups functional. (Bug #33351110, Bug #33588618)
  • Executing SHOW PROCESSLIST or accessing INFORMATION_SCHEMA.PROCESSLIST on a server with a specific configuration caused a failure. (Bug #33341623)
  • Added a mapping from ICU error code U_FILE_ACCESS_ERROR to the new MySQL error code ER_REGEXP_MISSING_FILE. (Bug #33326003)
  • A failed keyring function argument validation check caused a failure. (Bug #33319782)
  • Disabling the Group Replication plugin in a MySQL source distribution using the CMake option DWITH_GROUP_REPLICATION=0 did not disable applications and tests related to Group Replication, which caused them to build incorrectly. (Bug #33308513)
  • The index range scan iterator did not always increment the number of rows examined as expected. (Bug #33305632)
  • Enabling the create_admin_listener_thread system variable on the command line could cause a server exit during startup under specific error conditions. (Bug #33300587)
  • The SUBSTR() function did not always correctly handle errors raised when trying to evaluate its arguments. (Bug #33290160)
  • International Components for Unicode version 67 introduced a new implementation for X (match a grapheme cluster), which requires locale data not currently included with MySQL.
  • This means that, when using the version of ICU bundled with MySQL, a query using X raises the error ER_REGEXP_MISSING_RESOURCE; when using ICU supplied by the system, we report ER_WARN_REGEXP_USING_DEFAULT as a Note. (Bug #33290090)
  • A full-text search query on a table stored in the BLACKHOLE storage engine where the chosen query plan used a full-text index scan caused an error instead of returning an empty result set. (Bug #33250020)
  • The LOCK_TIME returned by the performance schema was under evaluated, missing time spent in rows locks, and time spent when locking multiple tables. As of this release, LOCK_TIME accounts for:
  • all the time waited on SQL TABLES
  • all the time waited on DATA locks
  • LOCK_TIME is now reported consistently in the slow log and the performance schema. (Bug #33236909)
  • A new option T for the mysql client prompt prints an asterisk (*) if the current session is inside a transaction block. You can use the option with the --prompt command-line option, in a MySQL option file, or with the MYSQL_PS1 environment variable. Thanks to Murakami Kohei for the contribution. (Bug #33214862, Bug #104598)
  • Constant subqueries in RANGE INTERVAL expressions were not always handled correctly. (Bug #33197418)
  • Decimal expressions which evaluated as NULL were not always handled correctly. (Bug #33169048)
  • A user account that was granted a MySQL role with a global SELECT privilege was denied access to the mysql database. The user account's global privileges were not checked when the role was granted. (Bug #33159353, Bug #104423)
  • When setting up an Item_ref to a SELECT alias, its cached properties are copied (including whether it is part of a ROLLUP expression or not). However, these might not yet be correctly computed, so the computation should to be done first or the values could be wrong. Having the wrong value could cause certain expressions to be materialized in an intermediate step when they should not (because they contain ROLLUP expressions that are not ready for computation, but having the wrong value is unknown at this point). The issue is fixed by forcing cached values to be recomputed when an item is designated as a rollup item. (Bug #33149402, Bug #104394)
  • An invalid comment string detected while upgrading a table from MySQL 5.7 to MySQL 8.0 caused the upgrade to fail with errors that did not provide sufficient contextual information. (Bug #33148961)
  • It was possible in some cases to create a generated column of type SERIAL, which is not allowed.
  • See Numeric Data Type Syntax, and CREATE TABLE and Generated Columns, for more information (Bug #33141966)
  • Statements which commit a transaction implicitly or explicitly are not allowed inside a trigger or a stored function. Both CREATE TRIGGER and CREATE FUNCTION should report an error (ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG) in this case, but did not correctly handle DROP TABLESPACE. (Bug #33141958)
  • A SHOW TABLE STATUS operation raised an assertion failure when run on a table defined with a very large AVG_ROW_LENGTH value. (Bug #33114368)
  • When calculating the maximum number of rows likely to be read from a scan, the intermediate result was a double that could become greater than the maximum allowed value for a 64-bit unsigned integer. This triggered undefined behavior when converting the intermediate double value to an integer, which in some cases could lead to assert failures.
  • We fix this by clamping the result in the range [1, UINT64_MAX]. (Bug #33066458)
  • Queries using both UNION and LIMIT 0 triggered an assert failure in debug builds. (Bug #33066455)
  • References: This issue is a regression of: Bug #32302724.
  • Renaming an event using ALTER EVENT ... RENAME TO did not delete the Performance Schema instrumentation for the original event. (Bug #33059358)
  • An SSL handshake assertion was raised on debug builds when using the thread pool plugin. (Bug #33012398)
  • Some prepared statements using either GROUP BY WITH ROLLUP or one or more window functions could be executed successfully only once. (Bug #33007266)
  • An error occurred for statements of the form INSERT INTO view VALUE(tuple) AS row_alias(id_list). When executing such statements, the server calls the internal function Sql_cmd_insert_base::prepare_values_table() in order to prepare the derived table created as a VALUES alias; this function populates Sql_cmd_insert_base.values_field_list with Item_field objects pointing to the fields the underlying table. When inserting into a view rather than a table, an expected real_item() transform, needed to map from an Item_view_ref referencing the view column to an Item_field representing the corresponding column in the underlying table, was not performed. (Bug #32858783)
  • Some multiply-nested subselects were not handled correctly, and could lead to an unplanned shutdown of the server. (Bug #32547812)
  • Inspection of a session thread object during a SHOW PROCESSLIST operation and a concurrent change to the thread's security context resulted in a race condition. (Bug #32320541, Bug #102052)
  • In cases where there are no operations to be performed on the result of a UNION, the rows are streamed without storing them in a temporary table, although a placeholder for the temporary table still exists in the query block. Since this table is not instantiated, a check for estimates of the cost of reading the rows from the table while calculating the access cost and optimizing for range based access had unpredictable results.
  • We fix this by skipping retrieval of such row estimates in the case of an uninstantiated temporary table. (Bug #32255904)
  • A multi-table DELETE statement using common table expressions was not always handled correctly. (Bug #32238558)
  • References: This issue is a regression of: Bug #98330, Bug #30796015.
  • If a CR_UNKNOWN_ERROR was to be sent to a client, an exception could occur. (Bug #31933415)
  • SSL-related code was revised to avoid a potential memory leak. (Bug #31933295)
  • In some cases, multiple-table UPDATE statements could block concurrent access. (Bug #31731752)
  • Keyring system variables that use an internal slot for complex settings no longer accept a setting of DEFAULT. (Bug #30879700)
  • The Timestamp column in the mysql.tables_priv and myql.columns_priv grant tables was set to a zero timestamp value ("0000-00-00 00:00:00") for GRANT and REVOKE operations, preventing a logical restore of the grant tables. As of MySQL 8.0.28, a valid start time value is written to the Timestamp column.
  • If you have existing grant table records with zero timestamp values that are preventing a logical restore of the grant tables, a workaround is to update records in the grant tables or in the dump files, replacing zero timestamp values with CURRENT_TIMESTAMP.
  • Thanks to Venkatesh Prasad Venugopal for the contribution. (Bug #30863899, Bug #98495)
  • Producing a per-table dump using mysqldump in MySQL 5.7 and 8.0 requires a longer execution time compared to MySQL 5.6. This is because the information_schema.files table, which is queried for information on log file groups by mysqldump, contains information about InnoDB data files as well as NDB data files from MySQL 5.7. In MySQL 8.0, the issue has been fixed by rewriting the query to select only the appropriate data files. In MySQL 5.7, Information Schema tables do not have indexes, so a full table scan is still required. (Bug #29210990, Bug #93875)
  • Keyring memory management was improved. (Bug #25042167)
  • Incorrect values for FORCE INDEX FOR GROUP BY could be set while saving and restoring the presence of FORCE INDEX hints within tables. (Bug #105694, Bug #33604416)
  • If a query with the sql_buffer_result system variable enabled returned just one row, and an attempt was made to insert the result into a table, then an error in setting the output from the temporary table could produce a data exception. (Bug #105351, Bug #33515752)
  • References: This issue is a regression of: Bug #33152269.
  • Resetting of the active slice was not performed in WindowIterator::Read() at the end the end of the input result set for windowing. This led to reading wrong values on reaching the ORDER BY sort, since the number of the active slice was still set to 1—that is, to the items being read from the input table—while the ORDER BY sorting stage needs to read the values after computation of any window functions. For this, it needs the active slice to be that of the last window's output table.
  • We fix this by moving the resetting of the slice to the output slice immediately following the read, so that it is already set correctly when returning at the end of the input set and moving on to the ordering.
  • Our thanks to Casa Zhang and the Tencent team for the contribution. (Bug #105045, Bug #33399696)
  • Code inspection revealed use of strncpy() in the internal function set_parse_error_message() without making sure that the last byte of the buffer being copied into was a null byte. We fix this by using snprintf() instead of strncpy(); this ensures that the result is valid even if it is truncated. (Bug #104856, Bug #33321787)
  • When executing prepared statements that activated a trigger created with the DEFINER clause (or a stored function), invoker privileges were used for checking table access instead of definer privileges. This, in turn, could cause privilege checks on tables used by the trigger or stored function to fail. (Bug #104168, Bug #33064461)
  • When a singleton histogram is constructed, its cumulative frequency is calculated by adding frequencies of previous buckets with the current bucket; because a floating-point value was used for the accumulator, this sometimes led to accumulated float errors, with the final cumulative frequency fractionally greater than 1.0.
  • This fix accumulates the frequency with an integer type instead, to avoid intermediate floating-point errors.
  • Our thanks to Casa Zhang and the Tencent team for the contribution. (Bug #104108, Bug #33045336)
  • Multi-valued indexes were not used for queries executed from within stored functions. (Bug #102359, Bug #32427727)
  • References: See also: Bug #104700, Bug #33268466.
  • An error occurred for an SQL statement having the form shown here:
  • INSERT INTO target_table
  • SELECT aggregate_expression, non_aggregate_expression
  • FROM empty_table;
  • This happened when the query plan used aggregation from a temporary table, and when non_aggregate_expression was constant during one execution of the query, but could vary between executions. Such an expression might, for example, include a function such as NOW() or USER(). This resulted in the temporary table getting a column for non_aggregate_expression, which is unnecessary, since all rows have the same value. In addition, if there were no rows, there was no legal value to insert into target_table, which is what actually triggered the error.
  • We fix this by not using a temporary table column when non_aggregate_expression is const for the current execution. (Bug #102252, Bug #32384355, Bug #33546083)
  • When executing a prepared statement that included values passed in as strings, MySQL attempted to parse them as integers and could return an error unrelated to the input value.
  • After a recent change, dynamic parameter handling was refactored so that the derived data type for parameters was determined based on context. For example, in a comparison such as int_col = ?, the parameter was given the same type as the (integer) column it was compared to. To preserve compatibility with existing MySQL applications, if a decimal or float value was supplied as parameter, the statement was automatically reprepared with new type assigned to the parameter based on the actual value. This handling preserved compatibility for numeric parameters.
  • However, if a string parameter was supplied, it was still interpreted as an integer (the resolved data type) and this behavior was not compatible with older MySQL versions that detected the actual type of the value. The consequences being that if int_col = ? is executed with the parameter value '1.7', only the integer part of the string was used, making the effective comparison int_col = 1.
  • To fix the issue, now when a string parameter is supplied, the parameter is analyzed to determine if it is an integer, a decimal, or a float value and the actual data type of the parameter is updated accordingly. Later, the actual type is compared to the resolved type and if it is incompatible, the statement is reprepared with the new actual type. So, the previous statement now evaluates as int_col = 1.7 and the comparison evaluates using decimal numbers. (Bug #101806, Bug #32213576, Bug #103364, Bug #32787037)

New in MySQL Workbench 8.0.25 (Jul 20, 2021)

  • Packaging Notes:
  • Binary packages that include curl rather than linking to the system curl library have been upgraded to use curl 7.76.0.
  • Bugs Fixed:
  • On Fedora 34, builds from source failed due to an undefined reference to symbol crc32_z@@ZLIB_1.2.9. (Bug #32702860)
  • For a prepared, implicitly grouped SELECT statement in which the WHERE clause was determined always to be false, the result of some aggregate functions could sometimes be picked up from the previous execution of the statement. (Bug #103192, Bug #32717969)

New in MySQL Workbench 8.0.24 (Apr 20, 2021)

  • Audit Log Notes:
  • MySQL Enterprise Audit now supports audit log file pruning, for JSON-format log files. See Space Management of Audit Log Files.
  • Compilation Notes:
  • GCC 10 is now a supported compiler for building MySQL on EL7 or EL8. This compiler is available in the devtoolset-10 (EL7) or gcc-toolset-10 (EL8) package. It is also recommended to use GCC 10 when building third-party applications that are based on the libmysqlclient C API library. (Bug #32381003)
  • Connection Management Notes:
  • Previously, if a client did not use the connection to the server within the period specified by the wait_timeout system variable and the server closed the connection, the client received no notification of the reason. Typically, the client would see Lost connection to MySQL server during query (CR_SERVER_LOST) or MySQL server has gone away (CR_SERVER_GONE_ERROR).
  • In such cases, the server now writes the reason to the connection before closing it, and client receives a more informative error message, The client was disconnected by the server because of inactivity. See wait_timeout and interactive_timeout for configuring this behavior. (ER_CLIENT_INTERACTION_TIMEOUT).
  • The previous behavior still applies for client connections to older servers and connections to the server by older clients.
  • Error Handling:
  • Client connection failure messages now include the port number. For example: Can't connect to MySQL server on '127.0.0.1:63333'.. Thanks to Daniël van Eeden for the contribution. (Bug #30787660, Bug #98311)
  • Optimizer Notes:
  • The MySQL query optimizer can now apply the derived table optimization to correlated scalar subqueries. This is done by applying an extra grouping and then an outer join on the lifted predicate. For example, a query such as SELECT * FROM t1 WHERE (SELECT a FROM t2 WHERE t2.a=t1.a) > 0 can be rewritten as SELECT t1.* FROM t1 LEFT OUTER JOIN (SELECT a, COUNT(*) AS ct FROM t2 GROUP BY a) AS derived ON t1.a = derived.a WHERE derived.a > 0.
  • If the subquery already has an explicit grouping, MySQL adds the extra grouping to the end of the existing grouping list.
  • MySQL performs a cardinality check to ensure that the subquery does not return more than one row, and raises ER_SUBQUERY_NO_1_ROW if it does. The check is performed as part of evaluating any WHERE or JOIN clause in the rewritten query, before evaluating the lifted predicate.
  • For more information, see Correlated Subqueries, as well as Derived Tables.
  • Packaging Notes:
  • The bundled libedit library was upgraded to version 20190324-3.1. (Bug #32433089)
  • Binary packages that include curl rather than linking to the system curl library have been upgraded to use curl 7.74.0.
  • Keyring Notes:
  • MySQL Keyring previously implemented keystore capabilities using server plugins, but now is transitioning to use the MySQL component infrastructure, beginning with these keyring components:
  • component_keyring_file stores keyring data in a file local to the server host. This component is available in MySQL Community Edition and MySQL Enterprise Edition distributions. See Using the component_keyring_file File-Based Keyring Component.
  • component_keyring_encrypted_file stores keyring data in an encrypted, password-protected file local to the server host. This component is available in MySQL Enterprise Edition distributions. See Using the component_keyring_encrypted_file Encrypted File-Based Keyring Component.
  • The new keyring components have similarities to the existing keyring_file and keyring_encrypted_file plugins, but are configured differently, use distinct on-disk storage formats, and have fewer restrictions on key type and key size.
  • Keyring components are not loaded using the --early-plugin-load server option during startup or configured during startup or at runtime using system variables:
  • During startup, the server determines which keyring component to load using a manifest file, and the loaded component consults its own configuration file when it initializes. See Keyring Component Installation.
  • At runtime, the new ALTER INSTANCE RELOAD KEYRING statement enables reconfiguring an installed keyring component after changes to its configuration file. See ALTER INSTANCE Statement.
  • If a keyring component is installed, the new Performance Schema keyring_component_status table provides status information about it. See The keyring_component_status Table.
  • Key migration capabilities have been expanded. Previously, key migration occurred only from one keyring plugin to another. The new --keyring-migration-to-component server option enables key migration from a keyring plugin to a keyring component; this facilitates transitioning a MySQL installation from keyring plugins to keyring components. The new mysql_migrate_keyring utility enables key migration from one keyring component to another. See Migrating Keys Between Keyring Keystores. There is no provision for migrating keys from a keyring component to a keyring plugin.
  • Existing keyring plugins remain available with no change to user-visible characteristics, but their implementation was revised to use the component infrastructure. This is facilitated using the built-in plugin named daemon_keyring_proxy_plugin that acts as a bridge between the plugin and component service APIs. See The Keyring Proxy Bridge Plugin.
  • Performance Schema Notes:
  • Incompatible Change: Instrumentation in the Performance Schema setup_instruments table was revised as follows:
  • There are new memory instruments to account for memory allocated to data dictionary infrastructure and objects.
  • Some instruments were renamed for improved uniformity of instrument naming. Affected instrument names are grouped using a key prefix in the same style as C++ namespaces. For example, error-related instruments use a error:: prefix and partition-related instruments use a Partition:: prefix. The following table displays the affected instruments. In addition, the servers instrument is a duplicate of servers_cache and has been removed. Applications that use the old or removed instrument names should be adjusted to account for this change.
  • Several instruments were given a value in the DOCUMENTATION column (it is no longer NULL), improving runtime instrumentation documentation availability.
  • Pluggable Authentication:
  • The new caching_sha2_password_digest_rounds system variable enables configuring the number of hash rounds used by the caching_sha2_password authentication plugin for password storage.
  • Security Notes:
  • For platforms on which OpenSSL libraries are bundled, the linked OpenSSL library for MySQL Server has been updated to version 1.1.1k. Issues fixed in the new OpenSSL version are described at https://www.openssl.org/news/cl111.txt and https://www.openssl.org/news/vulnerabilities.html. (Bug #32680637)
  • Spatial Data Support:
  • The new ST_LineInterpolatePoint() and ST_LineInterpolatePoints() functions return a single point or multiple points interpolated between the start point and endpoint of a LineString geometry. The new ST_PointAtDistance() function returns a single point a given distance along a LineString geometry. See Spatial Operator Functions.
  • The new ST_Collect() aggregate function takes multiple geometry arguments and produces from them a single geometry collection value. See Spatial Aggregate Functions
  • The CAST() and CONVERT() functions have been extended to support casting geometry values from one spatial type to another. See Cast Functions and Operators.
  • Functionality Added or Changed:
  • InnoDB: The AUTOEXTEND_SIZE maximum setting was increased from 64M to 4GB. The AUTOEXTEND_SIZE option, introduced in MySQL 8.0.23, defines the amount by which InnoDB extends the size of a tablespace when it becomes full. The option is supported with the CREATE TABLE, ALTER TABLE, CREATE TABLESPACE, and ALTER TABLESPACE statements. For more information, see Tablespace AUTOEXTEND_SIZE Configuration. (Bug #32438606)
  • Microsoft Windows: The /RTC1 compiler flag was removed from the debug compiler flags to reduce the time needed to run all tests invoked by the mysql-test-run.pl script when using MSVC on Windows. Initially, this compiler flag was introduced with the CMake program (by default for debug builds) and it generated code to test for stack corruption around function calls and the use of uninitialized variables at runtime. No loss of bug discovery is expected with the removal of the /RTC1 compiler flag. Memory errors, such as stack corruption, are more likely to be found by Address Sanitizer (ASAN) testing and the use of uninitialized variables are detected by compiler warnings. (Bug #32525732)
  • Microsoft Windows: The named_pipe_full_access_group system variable now defaults to an empty string (''), making named pipe connections secure. Previously, '*everyone*' was the default value. A valid Windows local group name may be substituted.
  • The new clone_donor_timeout_after_network_failure Clone plugin variable defines the amount of time the donor allows for the recipient to reconnect and restart a cloning operation following a network failure. The timeout was previously fixed at 5 minutes. The timeout can now be extended up to 30 minutes to provide more time for network issues to be resolved.
  • Thanks to Daniël van Eeden for the contribution. (Bug #32335434, Bug #102103)
  • Client applications and test suite plugins now report utf8mb3 rather than utf8 when writing character set names. (Bug #32164079, Bug #32164125)
  • Group Replication’s allowlist of hosts from which an incoming Group Communication System connection can be accepted, can now be updated while Group Replication is still running. You can therefore add new members to a group controlled by an allowlist without needing to stop and restart Group Replication. The allowlist is specified by the group_replication_ip_allowlist system variable on each group member.
  • The --skip-slave-start command line parameter is used to prevent the replication I/O thread and replication SQL thread from starting when a replica server restarts. However, using the parameter on the command line or in a my.cnf option file might require login access to the server host. The skip_slave_start system variable is now provided to give access to this feature using MySQL Server’s privilege structure, so that database administrators do not need any privileged access to the operating system. The new global system variable is read-only and can be set using a SET PERSIST_ONLY statement. As a system variable, its value can also be queried from a MySQL client and used by MySQL APIs. The --skip-slave-start command line parameter can still be used as an alternative, and it sets the new global system variable.
  • Bugs Fixed:
  • Important Note: When a utf8mb3 collation was specified in a CREATE TABLE statement, SHOW CREATE TABLE, DEFAULT CHARSET, the values of system variables containing character set names, and the binary log all subsequently displayed the character set as utf8 which is becoming a synonym for utf8mb4. Now in such cases, utf8mb3 is shown instead, and CREATE TABLE raises the warning 'collation_name' is a collation of the deprecated character set UTF8MB3. Please consider using UTF8MB4 with an appropriate collation instead. (Bug #27225287, Bug #32085357, Bug #32122844)
  • References: See also: Bug #30624990.
  • InnoDB: Stale pages encountered by the buf_page_create() function were freed and then read from disk again without being reinitialized. (Bug #32622548)
  • InnoDB: C++ enum type values in buffer pool page and buffer pool block data structures in the InnoDB source code were changed from int to uint8_t in MySQL 8.0.23, causing the data to be printed as ascii characters instead of integers in different outputs including messages and INFORMATION_SCHEMA tables.
  • The function that populates the INNODB_BUFFER_PAGE_LRU table did not print the IO_PIN state for the IO_FIX field. (Bug #32575469)
  • InnoDB: The btr_pcur_t::copy_stored_position function, which copies the position of one index tree persistent cursor to another, performed unnecessary free and malloc calls. (Bug #32574835)
  • InnoDB: A function that checks for locks on a table tried to acquire an exclusive lock system (lock_sys) latch, causing long semaphore waits. (Bug #32545030)
  • InnoDB: Counting temporary tablespaces as open files caused the innodb_open_files limit to be exceeded, preventing other files from being opened. Temporary tablespaces are now ignored when counting open files. (Bug #32541241)
  • InnoDB: The buf_flush_ready_for_flush() function identified a stale page as ready to flush without first checking if the page was dirty or I/O fixed, causing an assertion failure. (Bug #32530147)
  • InnoDB: Rollback of a transaction that modified generated columns raised an assertion failure. The failure occurred when attempting to free space occupied by externally stored columns. The update vector containing the externally stored columns did not account for the generated columns. (Bug #32529561)
  • InnoDB: When starting the server with innodb_validate_tablespace_paths disabled, user-created undo tablespaces, which are temporarily set to inactive during the initial stages of the startup process, were not reactivated. (Bug #32493885)
  • InnoDB: Disabling innodb_extend_and_initialize, which causes InnoDB to use fallocate() when allocating space to tablespace files, caused a performance regression for insert-oriented workloads. (Bug #32437020)
  • InnoDB: An unnecessary full flush list scan was removed, improving the speed with which session temporary tablespaces are created. Previously, depending on the size of the buffer pool and the number of dirty pages, creation of session temporary tablespaces could take a long time, affecting write transaction performance. (Bug #32423860)
  • InnoDB: A function that checks if a given page type is valid raised an assertion when testing valid but undefined page type for an undo tablespace. (Bug #32366301)
  • InnoDB: Sharded read-write lock function instrumentation was improved. (Bug #32333168)
  • InnoDB: On Windows, when creating a table with the COMPRESSION option, InnoDB failed to check the error status of a system call before checking the punch hole support flag set by the same system call, which resulted in reading an uninitialized flag. (Bug #32322645)
  • InnoDB: Geometry columns created in MySQL 5.6 caused failure when restarting the server after upgrading from MySQL 5.7 to MySQL 8.0 due to a geometry type change introduced in MySQL 5.7. (Bug #32299738)
  • InnoDB: During recovery, log records for multiple record group mini transactions were parsed twice. The log record from the first parsing operation is now saved to avoid the second pass, which improves recovery performance.
  • Thanks to Zhai Weixiang for the contribution. (Bug #32293797, Bug #102010)
  • InnoDB: In debug builds, an end range condition check for a secondary index raised an assertion failure, and Valgrind testing uncovered an end range condition check for secondary index on a virtual column that read an uninitialized value. (Bug #32291506)
  • InnoDB: With the innodb_log_writer_threads variable disabled, extensive log writing by one thread could block log flushing opportunities for other threads. (Bug #32255538)
  • InnoDB: In SHOW ENGINE INNODB STATUS deadlock information, in cases where a single rw-lock reader thread holds a shared latch, the reader thread id was not printed. (Bug #32252477)
  • InnoDB: Running concurrent SHOW CREATE TABLE and ALTER TABLE operations on the same table raised an assertion failure. The SHOW CREATE TABLE thread referenced a tablespace object that had been made stale by the ALTER TABLE operation. (Bug #32235621)
  • InnoDB: The introduction of sharded rw_lock_stats counters in MySQL 5.7 caused a regression in CPU cache efficiency. To address this issue in MySQL 5.7, the sharding method was changed. For optimal performance, the rw_lock_stats counter is removed in MySQL 8.0. (Bug #32225367)
  • InnoDB: On Windows, stalls were caused by concurrent SELECT COUNT(*) queries where the number of parallel read threads exceeded the number of machine cores. (Bug #32224707, Bug #101789)
  • InnoDB: An IS_STALE column, which indicates whether a buffer pool page is stale, was added to the INFORMATION_SCHEMA.INNODB_BUFFER_PAGE table. (Bug #32194434)
  • InnoDB: In debug builds, the log_free_check() function in the redo log code, which ensures that there is available space in the logs when holding latches on dirty pages, now uses a list of mini-transactions opened by the current thread to search for potential constraint violations. (Bug #32189367)
  • InnoDB: During a slow shutdown on a system with a 64k InnoDB page size and innodb_max_undo_log_size setting that was less than the initial undo tablespace size, the two undo tablespaces were truncated in an endless loop. Undo tablespace truncation is now restricted to undo tablespaces that are larger than the initial undo tablespace size and the innodb_max_undo_log_size setting.
  • The function that retrieves the next redo rollback segment for an undo tablespace was modified to ensure that undo logs are evenly split between two active undo tablespaces when an inactive tablespace is found. (Bug #32173457)
  • InnoDB: Starting the server in upgrade mode following an unexpected stoppage while the undo_001 undo tablespace was being truncated caused failure. When upgrade processing was completed and shutdown initiated, the function that determines if undo truncation is required could not find the undo_001 undo tablespace. To address this issue, undo tablespace truncation is no longer performed when starting the server in upgrade mode. (Bug #32127912)
  • InnoDB: A delete operation on a parent table that initiated a cascading update on a child table with an indexed virtual column and indexed foreign key constraint column caused a virtual column corruption. (Bug #32124113)
  • InnoDB: The open and close sequence for table share instances (m_share objects) and dictionary table instances was modified to prevent accessing old m_share objects that could point to stale dictionary indexes.
  • Thanks to Yuxiang Jiang for the contribution. (Bug #31899685)
  • InnoDB: An debug assertion failure occurred when issuing a TRUNCATE TABLE operation after a successful server restart following a server initialization failure. (Bug #31763837)
  • InnoDB: A fast shutdown (innodb_fast_shutdown=0) raised an assertion failure. The assertion code checks for transactions in the transaction list (mysql_trx_list) before halting purge operations. The check occurred before shutting down the GTID persister background thread, which was still inserting transactions into the transaction list. (Bug #31693627)
  • InnoDB: Undo tablespace truncation error handling was improved, and a Windows-specific InnoDB file deletion procedure was made more POSIX-compatible. (Bug #31684783)
  • InnoDB: Initializing the server with an with a 4K InnoDB page size caused “key too long” errors to be written to the error log. (Bug #31496943, Bug #99892)
  • InnoDB: Creating an index on virtual columns raised an invalid debug assertion failure. (Bug #31279528, Bug #99421)
  • InnoDB: In debug mode, the buf_pool_validate_instance() function accessed the buf_page_t::io_fix field without properly synchronizing with a thread that was modifying the same field in the buf_page_io_complete() function, causing an assertion failure. In addition to correcting that issue, the buf_page_get_io_fix_unlocked() function was replaced by several specific functions that test the buf_page_t::io_fix field for particular values. A series of other small, related code changes were also implemented. (Bug #31027553)
  • InnoDB: The TempTable memory allocator did not track RAM consumption when allocating blocks of memory shared by different queries for a given session, which could result in nonadherence to the temptable_max_ram limit. (Bug #29890126)
  • Partitioning: In some cases, invalid PARTITION clauses were not handled correctly in ALTER TABLE statements. (Bug #32235085)
  • Replication: Binary log transaction compression could not continue if a row event included a BLOB column containing uncompressable data, and the compressed size of the row event was higher than its uncompressed size. The function now handles the additional post-compression bytes correctly. (Bug #32174715, Bug #101611)
  • Replication: If all previous binary log files were purged at startup because their retention period had expired, the new binary log file contained an empty Previous_gtids event, which could cause errors in replication. The order of initialization has now been changed so that previous binary log files are only purged after the previous GTID set has been written to the new binary log file that is created at startup. (Bug #32134875, Bug #101533)
  • Replication: When MySQL Server counted the number of GTIDs in a set, it was possible for the return value to wrap, returning an incorrect result. This could lead to an incorrect decision to use state transfer from the binary log for Group Replication’s distributed recovery, when a remote cloning operation would have been more efficient. The logic has now been corrected. (Bug #32086209)
  • Replication: An assertion was raised in debug builds relating to lost GTIDs if binary log files were removed at startup because their retention period had expired. (Bug #32008512, Bug #101137)
  • Replication: The sql_slave_skip_counter system variable, which is used to make a replica skip a specified number of transactions, ignored transaction payloads that had been compressed using binary log transaction compression (activated using the binlog_transaction_compression system variable). Only events in uncompressed transaction payloads were counted towards the total skipped. (Bug #31973055)
  • Replication: A deadlock could occur if the binary log file was rotated while system variables were being updated and read by different clients. (Bug #31774422)
  • Replication: The output of a SHOW PROCESSLIST statement for a replica’s SQL thread sometimes showed the last query as currently being applied when the replica was actually caught up. (Bug #30521198, Bug #97560)
  • Microsoft Windows: Running MySQL Server (64-bit) on a Windows system with more than 32 logical processors and setting the VCPU attribute of a resource group to greater than 30 produced an incorrect CPU mask value, which is used to set the thread affinity. Under these conditions, the MSVC compiler reported warnings that the 32-bit shift was converted implicitly to 64-bit in the thread_attrs_api_win.cc file. The conversion resulted in the wrong CPU mask calculation on systems that have more than 32 logical processors. This fix ensures that a 64-bit shift is used when calculating the CPU mask by replacing argument 1 of the shift with 1LL. (Bug #32079726)
  • JSON: The IF() function sometimes hit an assertion in debug builds when an error was raised from its first argument; this also could occur under similar circumstances with the additional condition that the function's return type was JSON. (Bug #32231393, Bug #32231620)
  • JSON: A number of JSON functions did not propagate errors correctly, which could lead to assert failures in debug builds. (Bug #32047630)
  • JSON: JSON_TABLE() inside triggers was sometimes handled incorrectly when re-used in different sessions. Fixed by ensuring that JSON_TABLE() and its temporary table are processed in the context of the current session. (Bug #31644193)
  • JSON: A multi-valued index defined on an expression that cast a column into a typed array was not used for speeding up queries. This was because the server, when substituting an expression with an equivalent indexed generated column, did not attempt to replace a reference to a column with a reference to an equivalent generated column; for multi-valued indexes, it makes sense to replace the column reference with a reference to a generated column backing a multi-valued index on an expression that cast that column into a typed array.
  • This fix lifts the restriction that the server attempts to substitute only function expressions and conditional expressions with indexed generated columns, by allowing substitution of column references when they appear in a context where they can make use of a multi-valued index, that is, when they are used as arguments to MEMBER OF(), JSON_CONTAINS(), or JSON_OVERLAPS(). The restriction remains in force for cases in which the column reference is used in a non-array context. (Bug #30838807)
  • JSON: The JSON_SEARCH() function interpreted all search string and path values as utf8mb4 strings, regardless of their actual encoding, which could lead to wrong results. (Bug #102443, Bug #32443143)
  • JSON: In some cases, when used in a left join, some MySQL JSON functions caused the optimizer to transform it into an inner join, even though the inner join was not equivalent to the original left join. This was due to the fact that they return a value which is not NULL, even though one of their arguments is NULL, and the optimizer expected them to return NULL on NULL input.
  • Functions affected by this issue included JSON_ARRAY(), JSON_OBJECT(), JSON_ARRAY_APPEND(), JSON_ARRAY_INSERT(), JSON_INSERT(), JSON_REPLACE(), and JSON_SET(). See JSON Functions, for more information about these functions. (Bug #101861, Bug #32248705)
  • Community packages for generic Linux were not built with the necessary LDAP/SASL/Kerberos dependencies, and did not bundle the associated required libraries. (Bug #32619858)
  • The functions BIT_AND(), BIT_OR(), BIT_XOR(), and JSON_ARRAYAGG() did not always provide proper error handling. (Bug #32594813)
  • The server did not always provide proper error messages when IN was incorrectly used with UNION. (Bug #32593846)
  • It was possible for casting from DECIMAL to a signed integer type to hit an assertion when the result had more digits than the metadata in Item_typecast_signed indicated it would have. This happened because the decimal value is rounded when converted to an integer, and Item_typecast_signed did not take into account that the rounding might increase the number of digits in what was the integer part of the decimal value, such as when rounding 9.9 up to 10.
  • This is fixed by removing the logic that tried to compute a minimal maximum length for the result of the cast, and instead using the default set by the parent class Item_int_func. That default is the maximum width of a 64-bit integer, which should be safe regardless of the input value. (Bug #32591589)
  • References: This issue is a regression of: Bug #32371039.
  • The name my_row_id was not permitted for invisible columns. This restriction has been lifted. (Bug #32586231)
  • On a system with many concurrent connections, execution of grant statements could take excessively long waiting for metadata locks, causing the server to become unresponsive. (Bug #32483597)
  • Windows binaries and libraries were not being properly signed. (Bug #32458533)
  • Privilege checks for INFORMATION_SCHEMA tables could fail to take the lower_case_table_names value into account. (Bug #32448364)
  • LIKE ... ESCAPE, where ESCAPE did not reference a constant value, was not handled correctly within a prepared statement. (Bug #32446728)
  • MySQL has traditionally interpreted an empty value in the ESCAPE clause (that is, ESCAPE '') for LIKE as “no escape character”. Problems could arise when either of the first two arguments to LIKE was a string using a multibyte character set, because the empty value in such cases was interpreted as meaning that the backslash () should be used as the escape character, breaking the expected behavior.
  • This fix causes LIKE to interpret ESCAPE '' as meaning that there is no escape character regardless of character set, restoring the previous, expected behavior.
  • In addition, we now raise an error if the specified escape character cannot be converted to the target character set. This supersedes the original behavior in such cases, which was to fall back silently to using the backslash as the escape character. (Bug #32446508)
  • Windows packages were subject to an OpenSSL vulnerability. (Bug #32431519)
  • User-defined function arguments containing window functions or subqueries could produce unexpected results. (Bug #32424455)
  • Improper handling of temporary tables used for cursors within stored procedures could result in unexpected server behavior. (Bug #32416811)
  • Use of the symbol TRUE in the source resulted in a build failure on some platforms. This was replaced by true. (Bug #32406197, Bug #102308)
  • The privilege check used to determine whether users can see view definitions in the INFORMATION_SCHEMA.VIEWS table worked incorrectly. (Bug #32405811)
  • For recursive common table expressions, an assertion could be raised if it became necessary to convert an in-memory temporary table to on-disk. (Bug #32404597)
  • A prepared statement employing a user-created function was not handled correctly when the function took no arguments. (Bug #32404542)
  • A clone plugin installation failure could cause subsequent installation attempts to fail. (Bug #32402158, Bug #102240)
  • Some internal functions used with temporal column types did not provide proper handling for YEAR values. (Bug #32395335)
  • The internal constants MAX_FLOAT_STR_LENGTH = 12 and MAX_DOUBLE_STR_LENGTH = 22 represent the maximum lengths of strings representing FLOAT and DOUBLE values, respectively. The heuristic employed by the conversion routine my_gcvt for determining whether to use scientific notation sometimes generated strings that were longer than these.
  • These long strings caused problems for some string conversion routines, since their actual lengths could exceed the expected maximums. We fix this by explicitly telling my_gcvt the desired length whenever we fetch a FLOAT or DOUBLE in a string context. (Bug #32385934)
  • Within triggers, use of RAND() with no arguments could lead to unexpected server behavior. (Bug #32372805)
  • A missing tablespace error was reported on the recipient MySQL server instance after a remote cloning operation. The tablespace was not cloned due to the innodb_validate_tablespace_paths variable being disabled on the donor instance, which resulted in the associated tablespace object not being loaded. A check is now performed before a cloning operation to ensure that all tablespace objects are loaded. (Bug #32354908, Bug #102137)
  • Some query blocks containing large numbers of EXISTS subqueries were not always handled correctly. (Bug #32343143)
  • mysqlpump could exit unexpectedly if a SHOW CREATE TABLE statement failed. (Bug #32340208)
  • A long running remote cloning operation failed due to a low wait_timeout setting on the donor MySQL Server instance. Donor threads use the MySQL Server wait_timeout setting when listening for Clone protocol commands. To avoid timeout failures on donor instances with a low wait_timeout setting, the Clone idle timeout is now set to the default wait_timeout setting, which is 28800 seconds (8 hours). Clone network read and write timeout values were also increased. (Bug #32340112, Bug #102097)
  • Replication threads running in the server were visible in the Performance Schema threads table, but failed to appear in the variables_by_thread or status_by_thread tables. Now they appear in all three tables. Thanks to Facebook for the contribution. (Bug #32335496, Bug #102115)
  • A query string was displayed before it had been rewritten. (Bug #32335263, Bug #32628376)
  • For builds compiled using the libedit library, if the mysql client was invoked with the --default-character-set=utf8 option, libedit rejected input of multibyte characters. (Bug #32329078, Bug #32583436, Bug #102806)
  • On Windows, large result sets could cause the mysql client to exit unexpectedly. (Bug #32316323, Bug #102051)
  • Preparing a query expression for repeated execution could raise an assertion if an error occurred during preparation. (Bug #32291841)
  • Functional index creation did not handle the column name as not case-sensitive. (Bug #32287186, Bug #101994)
  • Temporary tables bound to triggers during statement execution could cause an unexpected server exit. (Bug #32267749, Bug #32288089, Bug #32299045)
  • Improved NULL and error handling in calculations involving decimal values. (Bug #32258228, Bug #32497850)
  • An assertion was raised if there was an open handler to a table in a schema when the schema was altered to be read only. (Bug #32248313)
  • Selecting from the Performance Schema replication_group_members table in some cases raised Error 1267 Illegal mix of collations .... This was due to a change in MySQL 8.0.22 in the handling of comparisons between a column value and a system variable. (Bug #32244631)
  • References: See also: Bug #32501472, Bug #32579184.
  • MySQL produced invalid metadata for a number of temporal functions returning integer values. These functions included TO_DAYS(), PERIOD_DIFF(), PERIOD_ADD(), TO_SECONDS(), DAYOFMONTH(), DAYOFYEAR(), HOUR(), and MINUTE(), among others. (Bug #32239578)
  • Table subqueries of a natural join which retrieved only invisible columns were not handled correctly. (Bug #32235285)
  • For debug builds, using ALTER TABLE to set a column to have a DEFAULT value of TRUE raised an assertion. (Bug #32235058)
  • When an error was raised while evaluating a condition that was pushed down to the storage engine using index condition pushdown, the storage engine sometimes ignored the error and returned an error code indicating success, which could lead to assertion failures later.
  • Now in such cases, we make sure that the executor detects that an error has been raised, and stop execution at that point. (Bug #32234773)
  • For debug builds with binary logging disabled, ALTER TABLE ... MODIFY COLUMN with an invalid DEFAULT value raised an assertion. (Bug #32234194)
  • Preparation of an aggregate function sometimes hit an assertion in debug builds when the function took a constant scalar subquery as argument and the scalar subquery raised an error. (Bug #32231698)
  • For debug builds, improper character set handling for NULLIF() evaluated in aggregate context raised an assertion. (Bug #32231557)
  • A CREATE TABLE statement with an unsupported KEY_BLOCK_SIZE value raised an assertion. (Bug #32227101)
  • Upgrading a MySQL instance with a very large number of tables consumed an excessive amount of memory. Memory allocated to analyze data dictionary entities for possible upgrade was not released until all entities were processed. (Bug #32226180, Bug #101818)
  • ANALYZE TABLE executed on a table concurrently with a long-running query on the same table caused subsequent queries on the table to wait for the long-running query to finish. This wait induced by ANALYZE TABLE is now eliminated, thus allowing the subsequent queries to execute with no wait. (Bug #32224917)
  • Statements using a LIKE expression with an ESCAPE clause were not always handled correctly. (Bug #32213959)
  • On ARM platforms, an assertion could be raised in utilities used during the build process. (Bug #32209415)
  • InnoDB did not always handle some legal names for table partitions correctly. (Bug #32208630)
  • With the explicit_defaults_for_timestamp variable disabled, Clone plugin installation failed with PFS table creation error. The variable setting caused TIMESTAMP columns in the Clone Performance Schema tables to be created incorrectly as NOT NULL columns. (Bug #32199611)
  • SHOW CREATE VIEW produced invalid syntax for views created with a ROLLUP clause. This issue also affected mysqldump, which uses SHOW CREATE VIEW. (Bug #32197353, Bug #101740)
  • A failed CREATE TABLE or ALTER TABLE with SECONDARY_ENGINE_ATTRIBUTE could leak memory. (Bug #32187507)
  • Connection establishment failure could cause the server to count the number of open connections incorrectly. (Bug #32156518)
  • Refactoring work done in MySQL 8.0.19 did not handle left joins correctly on columns using functions such as IFNULL(). (Bug #32141711)
  • References: This issue is a regression of: Bug #30320525.
  • The optimizer could choose to use a Skip Scan even for backward index scans for which it is inapplicable, resulting in unpredictable server behavior. (Bug #32127290)
  • UDF function arguments containing window functions were evaluated at prepare time despite the fact that window functions are set up quite late in the prepare process. Now evaluation of these is delayed until execution time, similarly to how this is performed with respect to UDF arguments containing subqueries. (Bug #32122078, Bug #32393265)
  • Creating a table containing a column with a nonconstant default expression caused subsequent ALTER TABLE statements to fail. (Bug #32121425, Bug #101486)
  • Updating a BLOB-like column with a value from a larger BLOB-like column could cause the updated column to have the wrong size, even zero. (Bug #32112403)
  • A race condition could occur if a STOP GROUP_REPLICATION statement was used to stop a group member, while the Performance Schema statistics for Group Replication were being queried by another client. Group Replication now prevents STOP GROUP_REPLICATION statements and Performance Schema queries from running concurrently. (Bug #32100147)
  • Improper locking on an internal queue could cause mysqlpump to exit unexpectedly. (Bug #32067013)
  • The server did not always prepare correctly a statement using GROUP_CONCAT() on a SELECT with an ORDER BY clause. (Bug #32053547, Bug #31947466)
  • The sys schema create_synonym_db() procedure fail to create INFORMATION_SCHEMA synonyms. (Bug #32050275, Bug #101258)
  • Errors occurring in window functions were not always correctly propagated, which could lead to assertion failures in debug builds. (Bug #32028154)
  • It is now possible to use START REPLICA SQL_THREAD and STOP REPLICA SQL_THREAD statements for the group_replication_applier channel when Group Replication is stopped. This enables an operator to apply any remaining unapplied transactions on a server that left the group, without having to rejoin the server to the group. (Bug #32027612, Bug #32414767)
  • Calling XA COMMIT on a transaction started by another thread could result in Address Sanitizer warnings. (Bug #32025408)
  • When the mysql client was used in batch mode, its parser could be confused by USE followed by DROP DATABASE when the USE database name was quoted. (Bug #32015466, Bug #101124)
  • A change in MySQL 8.0.17 caused comp_err to become much slower. Normal performance has been restored. (Bug #32014733)
  • References: This issue is a regression of: Bug #29781631, Bug #95377.
  • Using CAST() on a DATE or DATETIME value in an INSERT statement raised a warning for "0000-00-00" and "2000-02-31", but not for "2000-01-00" or "2000-00-01". Now a warning is shown in each of these cases also. (Bug #32013612)
  • The maximum length of the MASTER_COMPRESSION_ALGORITHMS value for the CHANGE MASTER TO statement was checked incorrectly. (Bug #32008597)
  • When casting a dynamic parameter to YEAR (such as in PREPARE s FROM "SELECT CAST(? AS YEAR)"), type propagation was not preformed, causing execution of the prepared statement in which the parameter was used to fail. (Bug #32002844)
  • Definitions of some system tables for a MySQL 5.7 instance upgraded to MySQL 8.0 differed from the definitions of the system tables in a new MySQL 8.0 installation. (Bug #31989290)
  • Some SHOW statements using subqueries could result in unexpected server behavior. (Bug #31853180)
  • A query using GROUP BY column HAVING column_expression IS [NOT] NULL returned correct results, but when WITH ROLLUP was added did not. (Bug #31848191)
  • The SHOW ENGINE PERFORMANCE SCHEMA STATUS statement reported incorrect memory usage for the Performance Schema. (Bug #31795132, Bug #100624)
  • When trying to generate an entity data model using Visual Studio 2019, some tables could not be imported with the entity framework wizard. This was due to a change in MySQL 8.0.21 made to orthogonal data type aggregation, which handles columns from UNION and from functions or operators such as CASE and IF(). This makes it possible to return a value of type ENUM or SET, which did not need to be handled previously in such cases. (Bug #31750645)
  • References: See also: Bug #29698617.
  • While optimizing the ORDER BY clause of a subquery there was a possibility of cleaning up a subquery tree referenced in the outer SELECT, which could lead to a premature exit. (Bug #31721430)
  • A malformed name in the mysql.func system table could cause unexpected server behavior. (Bug #31674599)
  • Sessions could disable their own auditing. (Bug #31630954)
  • Compiler options for using profile guided optimization with GCC were improved to include -fprofile-partial-training and -fprofile-update=prefer-atomic when appropriate. Thanks to Dmitriy Philimonov for the suggestion. (Bug #31450064, Bug #99781)
  • Starting the server with the performance_schema_max_thread_classes and performance_schema_max_thread_instances system variables set to zero caused MySQL Enterprise Firewall to be unable to create new rules. (Bug #31335080, Bug #24947654, Bug #83519)
  • A null pointer was incremented during recovery from the redo log, causing a runtime error in an Undefined Behavior Sanitizer (UBSAN) build. (Bug #31173032, Bug #32428131)
  • With the log_slow_extra system variable enabled to add the Errno field to slow query log output, the error number was 0 even for failed statements. (Bug #30769965, Bug #98220)
  • On debug builds, certain conversion operations using the utf32 character set could cause unexpected server behavior. (Bug #30746908)
  • SELECT ... FOR UPDATE from a nonexistent Performance Schema table produced ER_TABLEACCESS_DENIED_ERROR rather than ER_NO_SUCH_TABLE. (Bug #30701047, Bug #98068)
  • Mishandling of stored program local variables could lead to unexpected server behavior. (Bug #30366310)
  • The Performance Schema metadata_locks table could show incorrect DURATION values, such as when a metadata lock taken for a TRANSACTION duration was later modified to EXPLICIT duration by a RENAME TABLE operation. (Bug #30065213, Bug #96237)
  • The audit_log plugin could fail to store its encryption password if it generated one at startup. (Bug #29559793)
  • Uninstalling a plugin could affect subsequent execution of prepared statements. (Bug #29363867)
  • Conversion of string-valued user-defined variables or function results to double (for example, using CAST()) did not emit a warning when truncation occurred. (Bug #27969934, Bug #21943299)
  • When a view definition used LIKE with an ESCAPE clause, the contents of the ESCAPE clause were ignored, leading to wrong results. (Bug #26086751)
  • It was possible to insert illegal ASCII values (outside 7-bit range) into character columns that used the ascii character set. This is now prohibited. (Bug #24847620)
  • To enable use of spaces and other special characters within configuration values, mysql_config_editor now surrounds values it writes to the configuration file with double quote characters, and also escapes double quote characters used within values. (Bug #19953349, Bug #74691)
  • When the aggregate iterator finds no rows, it calls on each item in its SELECT list to inform them of this (for example, so that COUNT(*) can set itself to zero, or SUM(foo) can set itself to NULL). After internal work done in MySQL 8.0.22, it could also inadvertently call hidden items. In some queries with doubly nested subqueries, one such hidden item could become its own parent subquery (and scalar subqueries in MySQL have special legacy handling of this call, for queries which are not ONLY_FULL_GROUP_BY), causing the entire subquery to return NULL when it should not have done so.
  • This is fixed by making the call only on visible items, as in MySQL 8.0.21 and earlier. (Bug #102101, Bug #32335256)
  • When interpreting the old-style plan to access paths, cache invalidators for LATERAL were delayed until all outer joins were completed, since outer joins could produce null-complemented rows that should also invalidate caches. Problems arose when an outer join contained a LATERAL, and that LATERAL referred only to tables from within the same outer join; in such cases the invalidator should be applied immediately and not delayed, lest we miss emitted rows, and the cache be incorrectly kept. In particular, this could happen when certain Information Schema tables were on the right side of an outer join, as these are now views defined using LATERAL.
  • We fix this by delaying emission of the invalidator until we are inside the same (outer) join nest as the materialization to be invalidated, but no further. This also deals correctly with the case where rows from a table should invalidate two or more separate materializations, where some are within the join and some are higher up. (Bug #101460, Bug #32113029, Bug #32311147)
  • References: This issue is a regression of: Bug #98238, Bug #30766181.
  • An optimizer trace printed floating-point numbers with a maximum six characters, which meant that the precision could be very low for many values, given that sign, decimal point, and exponent could use many of these characters. This was especially problematic for large numbers, whose precision could thus be as small as 1, and which could be rounded to values whose absolute value exceeded DBL_MAX and so could be rejected by JSON parsers.
  • Now such numbers are always printed in an optimizer trace with a precision of 6. (Bug #101457, Bug #32113020)
  • References: See also: Bug #94672, Bug #29493604.
  • Filesort was used for a query having an ORDER BY ... DESC clause, even when an index on the descending column was available and used. This happened because an ORDER BY sub-clause was not removed due to matching a field in an equality predicate, even though it should have, so that the optimizer did not match the query with the descending index, leading to suboptimal performance. (Bug #101220, Bug #32038406)
  • The debug server hit an assert when optimizer_search_depth was less than the number of JOIN_TAB structures used for a join. (Bug #100288, Bug #31655483)
  • Following the ALTER TABLE operations EXCHANGE PARTITION, IMPORT TABLESPACE, and IMPORT PARTITION TABLESPACE, serialized digital information reflecting the previous role of the tablespace was left behind. Now in such cases, the old SDI is explicitly removed from both tablespaces involved in the exchange or import of a tablespace. (Bug #98501, Bug #30878065)
  • Type resolution performed by the integer division operator (DIV) yielded a precision of one less than expected in the result.
  • Our thanks to Kaiwang Chen for the contribution. (Bug #96459, Bug #30156563)

New in MySQL Workbench 8.0.11 Build 12872684 RC (Apr 19, 2018)

  • Functionality Added or Changed:
  • Visual SQL editor: The context help has been enhanced to eliminate the requirement of having a valid MySQL connection to view the help topics. In addition, the help content now can be updated with each release of MySQL Workbench and the formatting of help topics has been improved. (Bug #25918509)
  • Microsoft .NET Framework version 4.5 replaced version 4.5.2 as the minimum requirement for installing MySQL Workbench with MySQL Installer. (Bug #25837944)
  • All links to MySQL and Oracle web pages from within MySQL Workbench now use the HTTPS protocol. (Bug #25531365)
  • Geometry fields displayed in the result grid now include a context-menu item that opens the geometry point in a browser. The selected point opens in openstreetmap.org by default, but the URL is configurable. (Bug #25517676)
  • The MySQL Workbench prerequisites web page was updated to include links to the latest Microsoft downloads. (Bug #25408896, Bug #25840902, Bug #85820)
  • The SSH Connect Timeout preference now can be configured, whereas in previous versions, this preference was set statically to 10 seconds. (Bug #18663250)
  • The following infrastructure changes were made:
  • ANTLR4 as the backend parser.
  • A new code-completion engine that works with object editors (triggers, views, stored procedures, and functions) in the visual SQL editor and in models.
  • Support for new language features in MySQL 8.0, such as common-table expressions and roles.
  • Grammar updates that synchronize with the latest MySQL servers.
  • Platform support for Microsoft Windows Server 2016 was added.
  • Administration tabs were modified to include the latest configuration options available from servers up to and including the MySQL 8.0 release series.
  • Character sets and collations are now rendered consistently across connections, models, and all editors (schema, table, and column).
  • MySQL Workbench now supports the caching_sha2_password authentication plugin introduced in MySQL 8.0 (see Caching SHA-2 Pluggable Authentication). A user account can be reset to use the other available authentication types for making a connection.
  • MySQL Workbench source code has been reformatted according to Google style.
  • MySQL Workbench now uses C++14 (replaces C++11 in 6.3.10).
  • Support for invisible indexes was added for use when the active server supports the feature and the index is neither a primary key index nor a unique column (see Invisible Indexes). A new option in the Indexes subtab of the table editor (for both the SQL and modeling editors) provides index visibility when it is selected.
  • MySQL Workbench now provides a simple way to enable or disable the persisted global system variable settings introduced in MySQL 8.0 (see SET Syntax for Variable Assignment). For variables that can be persisted, a new check box enables configuration changes at runtime that also persist across server restarts, and applies the persisted value if one exists. Persistent system variables can be reset (to not persist) individually or collectively.
  • The layout and behavior of the graphical elements within all administration tabs now are consistent across the tabs. In addition, the sidebar Management secondary tab was renamed to Administration to match the title of the workspace tabs that open when accessing the operations listed in the Management, Instance, Performance, and MySQL Enterprise sections.
  • Bugs Fixed:
  • Several tooltips within the Administration - Users and Privileges tab had inaccurate text that was corrected by this fix. (Bug #27392119, Bug #89256)
  • Columns of a table that followed a column containing a fractional seconds part did not appear within the tab opened by using Alter Table. (Bug #27314770, Bug #89053)
  • MySQL Workbench generated an error when the valid encryption instruction was improperly identified, but the query executed as expected. (Bug #27239353)
  • A differences report generated during the compare schemas operation for models could not be saved to a file. (Bug #27187659)
  • The on-screen buttons that enable saving a script to a file or copying it to the clipboard were missing from the review step of the forward-engineering operation on macOS hosts. (Bug #27162920, Bug #88612)
  • A UNION query with valid syntax produced an error message. (Bug #27113889, Bug #88456)
  • Some MySQL 8.0 keywords within a query were improperly identified as syntax errors. (Bug #27036620)
  • Importing a JSON document with the Table Data Import Wizard was unsuccessful. (Bug #27036381, Bug #25983728, Bug #86148)
  • Recorded rules were not found after the Mode option in the Firewall tab was properly configured for a valid user account. (Bug #27003240)
  • The manual editing step of the MySQL Migration wizard generated an exception when an object was selected for editing. (Bug #26986326)
  • The version of gtkmm30 that shipped with Red Hat Enterprise Linux 7.4 was incompatible with the version that MySQL Workbench compiled against. The version mismatch caused MySQL Workbench to close unexpectedly. (Bug #26797891)
  • The DBDoc Model Reporting feature omitted comments from the detailed HTML report using frames when processing a model based on a database with valid table comments and the Include DDL code for Objects option selected. Generating the report also caused MySQL Workbench to exit unexpectedly. (Bug #26436291)
  • The Table Data Import wizard ignored the user's column selection and always generated tables containing the full set of columns. Deselected columns were populated with NULL values after the import operation. (Bug #26194914, Bug #86577)
  • When typing text in the search box related to an EER diagram, MySQL Workbench became unresponsive or exited unexpectedly. (Bug #26025177, Bug #86225, Bug #26678740, Bug #87522)
  • A table or stored procedure with the ENCRYPTION table-level option in the definition prevented Workbench from parsing the definition, regardless of whether or not encryption was actually enabled. (Bug #25961450, Bug #25447637)
  • The SQL editor did not highlight syntax errors in statements as expected. (Bug #25861352)
  • Workbench closed unexpectedly when the Compare and Report Differences in Catalogs wizard attempted to save the differences report to a file. (Bug #25860643)
  • With a default schema properly selected and with the Create View icon (from the menu bar in an active connection tab) selected to open a new_view – View tab, a valid statement returned errors and then dynamically appended _SYNTAX_ERROR to the view name. For example, new_view was changed to new_view_SYNTAX_ERROR. (Bug #25860621)
  • When a new procedure on a MySQL model was created, the parser incorrectly generated a syntax error. (Bug #25851441)
  • After restarting the server from MySQL Workbench and then attempting to refresh the server log from the Administration - Server Logs tab, an error message appeared indicating that a garbage packet was received. (Bug #25760560)
  • An error message appeared when MySQL Workbench was started that improperly identified the operating system as unsupported. (Bug #25736096)
  • The forward engineering wizard did not launch when the operation was selected from the MySQL Workbench menu on hosts running macOS. (Bug #25701117, Bug #85398)
  • Changes made to a view or stored procedure associated with a model were not detected after the model was synchronized without first closing or deselecting the editor. (Bug #25671681, Bug #85246)
  • Using Alter Stored Procedure from the context menu to rename a stored procedure did not remove the original stored procedure after renaming it. (Bug #25645222, Bug #85229)
  • Two program entries were created for MySQL Workbench 6.3.9 on Windows when installed or upgraded with MySQL Installer. Only one of the programs listed in the Start, All Programs menu was a valid executable file. (Bug #25584877, Bug #85083)
  • All SQL options were missing during the SQL Export Options step of the Forward Engineering SQL Script wizard when a valid model was exported. (Bug #25559175, Bug #85012, Bug #25833972, Bug #84965)
  • Object rights, DDL rights, and other rights related to schema privileges set for a user account were not visible from the Administration – Users and Privileges tab on the Windows platform. (Bug #25527029, Bug #84923)
  • Labels and icons associated with the tables, views, and routines of an EER diagram were missing from within the Catalog tab. (Bug #25519411, Bug #84892)
  • The generated UPDATE statement was incorrect when the query included a row with a unique index, had multiple columns, and one column had the NULL value. (Bug #25510537, Bug #84856)
  • Browsing for files on a remote server using a valid SSH connection returned an error and did not display the remote files. (Bug #25495895)
  • After backing up server connections to a file on a Linux host, attempting to restore those connections from the backup file generated errors and was unsuccessful. (Bug #25492082)
  • Clicking Start Server within the Administration – Startup / Shutdown tab did not start the server on macOS hosts. (Bug #25489098)
  • The layout of Firewall Rules within the Administration – Users and Privileges tab obscured some graphical elements. This fix improves the usability. (Bug #25487997)
  • Source objects could not be viewed within the setup step when using the MySQL Workbench Migration Wizard to prepare for a database migration. (Bug #25487312)
  • The spinning circular icon on the query tab that appears when a query executes and replaces the X on the tab was absent on hosts running Linux. (Bug #25482378)
  • An exception was returned when the Continue execution until next break point button was used on a script executing within the Scripting Shell. (Bug #25476250)
  • When a new snippet was saved within the Scripting Shell, the save operation did not save the snippet properly and the snippet could not be reused after MySQL Workbench was restarted. (Bug #25471491)
  • The Run Script File action could be selected from the Scripting menu without an available script to execute. This fix disables the submenu item unless there is a script to run. (Bug #25462195)
  • Migrating a table to a database generated an incomplete definition for a binary field that was NOT NULL. (Bug #25404308, Bug #84519)
  • Altering a stored procedure that contained double dollar-sign characters ($$) as part of a variable name produced an error parsing DDL message. (Bug #25377145, Bug #84466)
  • Single quotes in string columns were not escaped properly during the database migration operation. (Bug #24939843)
  • When multiple queries were executed, only the first query was displayed in the history output area or written to the sql_history log file. (Bug #24622889, Bug #82929)
  • The invalid syntax indicator that appears on each line of the SQL editor did not change after the syntax was corrected or completed. This fix ensures that the editor re-evaluates each change. (Bug #24528088, Bug #82741, Bug #24901911, Bug #83395, Bug #24901911, Bug #83395)
  • With large text enabled on the host, some option groups were not visible to select within the forward-engineering wizard. (Bug #24486726, Bug #82633)
  • For a table with existing indexes (and SQL_MODE=ANSI_QUOTES), the Indexes tab within the table editor (opened with the wrench button in the Schemas tab of the sidebar) did not show the indexes as expected. Columns, Foreign Keys, Triggers, and Partitioning tabs were also missing objects defined in the table. (Bug #24349382, Bug #80483)
  • Unless the default syntax checker was set to SQL_MODE=ANSI_QUOTES, all double-quoted string literals were highlighted as syntax errors by the SQL editor. (Bug #24329515, Bug #82293)
  • After executing a query, MySQL Workbench often quit working or exited unexpectedly without writing to the log file. This fix improves the overall stability of the SQL editor. (Bug #24291775, Bug #82187)
  • The SQL editor underlined some keywords and reserved words in statements, indicating a syntax error, but executed the statements successfully. (Bug #23346980, Bug #24345217, Bug #82331)
  • Attempting to store a password in the vault from the Manage Server Connections window on a Windows host caused MySQL Workbench to become unresponsive. (Bug #23308198, Bug #81470)
  • When executing Explain Current Statement (Ctrl+Alt+X) from the menu on an UPDATE statement, a query plan generation error was displayed and the operation failed. (Bug #23098982, Bug #81068)
  • The Reverse Engineer Database wizard excluded tables in which the WITH PARSER clause was present. (Bug #22940775, Bug #80760)
  • A column with the STORED keyword could not be generated by using the EER Diagram or MySQL Model tabs on macOS hosts. This fix updates all of the relevant tabs to include the missing STORED option for generating a column or for editing generated columns. (Bug #22645321, Bug #80211)
  • Table rows were not generated properly when a valid Microsoft SQL Server table was migrated using the MySQL Migration wizard. (Bug #22200194, Bug #77933)
  • The forward engineering operation passed the default collation when a custom collation was defined for a schema. (Bug #22148986, Bug #79115)
  • When synchronizing a MySQL model that contained a table with JSON columns, the operation attempted to create a new table instead of fetching the table from the database. (Bug #22060787)
  • Columns with custom collation were reset to the default collation when the model containing the table was exported. (Bug #22006966, Bug #78817)
  • Models synchronized with existing databases produced an error message if any of the tables within a model had comments enclosed between /* and */ characters in triggers. (Bug #21551643, Bug #76176)
  • Generated queries were incomplete for models that included table columns of type VARCHAR with partitioning enabled. (Bug #21104120, Bug #76489)
  • Some fields within the Table Data Import wizard were misaligned and difficult to use. (Bug #20956767)
  • If the SCHEMAS tree was refreshed during a long query, MySQL Workbench became unresponsive until the query finished. (Bug #20896682, Bug #76594)
  • An error message was displayed when the delete operation was performed on an existing connection in the Manage Server Connections window. (Bug #20652117, Bug #76153)
  • The mouse pointer did not always change shape to match the area it was moved to within the visual SQL editor. (Bug #20588048, Bug #75993)
  • A complex IF, ELSEIF, ELSE structure when used to create a stored procedure within the new procedure – Routine tab produced a syntax error message as clause 45 was added and for each clause that followed. (Bug #18972055, Bug #72991)
  • Code completion did not provide a suggestion reliably for instructions included in the server dictionary, such as statements or system variables. In addition, types like TIMESTAMP were completed with the wrong type values. (Bug #18445589, Bug #27386829, Bug #89222, Bug #26897612, Bug #87907, Bug #18871688, Bug #72812)
  • Attempting to access the MySQL Enterprise Backup interface caused MySQL Workbench to stop working. (Bug #18019469)
  • An on-screen label with inaccurate text was corrected. (Bug #16808557)
  • Erroneous input at the beginning of the line in the SQL editor generated an error marker that continued to display after the wrong input was corrected or removed. (Bug #13820997, Bug #64481)
  • Popular Windows themes did not always render as expected, especially when color themes were selected on Windows hosts. In particular, some areas persisted a white background regardless of the setting. (Bug #11760110, Bug #52485)
  • When out-of-range index, unique index, or primary key values were define in the source, no warning was provided to indicate that the code produced could not be executed by the MySQL server. (Bug #11745588, Bug #17509)

New in MySQL Workbench 6.3.10 Build 12092614 (Jan 15, 2018)

  • Bugs Fixed:
  • Performance information within the Administration – Dashboard tab demonstrated a slow rate of refresh on hosts running macOS High Sierra. (Bug #26921498)
  • Tooltips within the Administration – Dashboard tab did not display when the mouse pointer was paused over each performance graph and the host was running macOS High Sierra. (Bug #26921467)
  • Table objects did not display with the Show Selection button during the migration process on hosts running macOS High Sierra. As a result, source objects could not be selected for inclusion or exclusion. (Bug #26921431)
  • Queries executed with the Limit Rows value set to “Don't Limit” did not display rows in the result grid on hosts running macOS High Sierra. (Bug #26921372)
  • Executing a query in MySQL Workbench on a host running macOS High Sierra failed to load the result grid completely, which prevented result data from appearing within the Result Grid tab. (Bug #26826418, Bug #87714)
  • Performing a keyword search in the EER Diagram Editor on hosts running macOS High Sierra caused MySQL Workbench to exit unexpectedly. (Bug #26428849, Bug #87020)
  • Forward engineering a physical database design did not operate as expected on hosts running macOS High Sierra. (Bug #25979928, Bug #86146)

New in MySQL Workbench 6.3.9 Build 10690321 (Feb 8, 2017)

  • FUNCTIONALITY ADDED OR CHANGED:
  • Support was added for many MySQL 8.0 features. Note that configuration-file support for MySQL 8.0 is not available and a warning banner is displayed during attempted use. (Bug #24908593, Bug #83422)
  • With MySQL 5.7, several new instruments were added to the performance section including the following for Memory Usage: Total Memory, Top Memory by Event, Top Memory by User, Top Memory by Host, Top Memory by Thread, User Resource Usage, and the following for User Resource Usage: Overview, I/O Statistics, and Statement Statistics. (Bug #21491775)
  • With MySQL 5.7, GTID_MODE can now be set online. (Bug #20712931)
  • Workbench is now aware of the innodb_optimize_point_storage option that was added in MySQL Server 5.7.5, and later removed in MySQL Server 5.7.6. Note that MySQL Server 5.7.9 was the first 5.7 GA release. (Bug #20661496)
  • Mroonga storage engine support is now available for tables. (Bug #20058280, Bug #74367)
  • A new DDL tab was added to show the complete create statement of a table or view. Click the table inspector (info) button next to the table or view in the Schemas Navigator to display the new information. (Bug #19889537, Bug #74554)
  • Dropped support for DBDesigner 4.
  • Dropped Fabric support.
  • Dropped support for MySQL 5.1. Minimum version is now MySQL 5.5.
  • Changed to C++11.
  • Changed to GTK 3 on Linux.
  • OS X: Version 10.7 (Lion) and 10.8 (Mountain Lion) support was dropped. Now supporting 10.9 (Mavericks), 10.10 (Yosemite), 10.11 (El Capitan), and 10.12 (Sierra).
  • Windows: Zip packages and 32-bit binaries are no longer published. The .NET Framework version 4.5 is now required.
  • Linux: Fedora 23 support dropped and Fedora 25 support added. Oracle Linux 6 support was dropped.
  • The option to specify an alternative application data directory, instead of the default location, was added.
  • The JSON editor was improved with better parsing and error checking.
  • A new Log Level preference (under Others) was added to alter the log verbosity level.
  • As before, this can still be set by passing in the log-level command-line argument into Workbench at runtime, and doing so overrides the Log Level setting.
  • The bundled sakila_full.mwb model now uses a dedicated 5.7 version to allow for 5.7 specific features, regardless of the version setting in the preferences.
  • Full MySQL 5.7 language support was added, which affects grammar, syntax highlighting, preferences, behavior, and more.
  • The Home screen was modified: the connections, models, and starters were split into individual pages.
  • BUGS FIXED:
  • With multiple tabs open in the SQL Editor, using the context-sensitive menu to close all other tabs caused MySQL Workbench to exit unexpectedly. (Bug #25466086, Bug #84643)
  • Objects sorted in the schema inspector and then selected for an operation, such as Drop Table, generated a statement for the wrong object. (Bug #25464011, Bug #84697)
  • MySQL Workbench supports the option to require a CA certificate or identity validation. (Bug #25408639)
  • If a full backup added warning messages to the backup log file, then running an incremental backup later failed. (Bug #25315796)
  • No JSON tab appeared for the Open Value in Editor command if the field contained an empty array. (Bug #25222455, Bug #84106)
  • Schema names were not escaped properly in resulting DROP TRIGGER statements when a trigger was created or edited. (Bug #25036458, Bug #83655)
  • In some cases, executing a query caused MySQL Workbench to become unresponsive when the host was macOS Sierra. (Bug #25036263, Bug #83658)
  • Having a single quotation mark (') in the text field of a table caused the MySQL Schema Transfer wizard to fail. (Bug #24978403, Bug #83616)
  • Simple and complex queries executed from SQL Editor failed to complete and return control to MySQL Workbench. This behavior was observed for both local and remote queries and was often intermittent. (Bug #24977018, Bug #82951)
  • Deleting rows while connected to a remote server caused the connection to fail and for MySQL Workbench to exit unexpectedly. (Bug #24947899, Bug #81019)
  • The Selected schema drop-down list in the New Schema Privilege Definition dialog failed to display newly added schema names unless MySQL Workbench was restarted. (Bug #24798254, Bug #83111)
  • The bundled OpenSSL library was upgraded to version 1.0.2J. (Bug #24753390)
  • Tooltips failed to operate properly in the Visual Explain panel. (Bug #24577687, Bug #82816)
  • Deleting selected rows from the Result Grid caused MySQL Workbench to become unresponsive. (Bug #24411733, Bug #82466)
  • Connecting to the server resulted in the following exception: Parameter is not valid. (Bug #24394987)
  • Queries returning more than 1000 rows on an SSH connection to AWS failed and caused MySQL Workbench to become unresponsive. (Bug #24330588, Bug #82291)
  • Adding a password with the Store in Vault option caused Workbench to fail and exit. (Bug #23987798, Bug #82190)
  • Opening a saved .mwb model file with MySQL Workbench generated the following error intermittently: Error unserializing GRT data string too long. The same file, when opened directly from the file system, started MySQL Workbench and displayed the model correctly. (Bug #23857478, Bug #80017)
  • Query statements executed from the SQL Editor did not remain selected when the focus returned to the query area. (Bug #23760790, Bug #79580)
  • The schema navigator incorrectly opened a previously viewed database, instead of the one selected, after the schema filter in the Navigator panel was used to find and list multiple databases. (Bug #23760745, Bug #71699)
  • Selecting TCP/IP over SSH for existing or new connections caused MySQL Workbench to fail and exit. (Bug #23743373, Bug #82113)
  • Changes made with the Options File editor were committed to my.cnf correctly, but also generated an error. (Bug #23741731, Bug #82102)
  • Stored procedures containing valid CASE statements reported syntax errors when created or edited. (Bug #23617646, Bug #81932)
  • Graphs in the performance dashboard reported negative values when the server instance was stopped and restarted during the analysis. (Bug #23103677, Bug #81067)
  • The Migration Wizard successfully migrated the schema, but failed to migrate the data, when the data source was SQL Anywhere 16 using ODBC. (Bug #22987681, Bug #79140)
  • Selecting too many tables when attempting to reverse engineer an EER diagram caused MySQL Workbench to fail and exit. This fix sets the permitted threshold to 1000 objects and displays a warning message when the number of objects exceeds the threshold. (Bug #22828056, Bug #80516)
  • The import operation failed to import valid CSV files. (Bug #22817059, Bug #80472)
  • New connections configured with the Standard TCP/IP over SSH connection method failed and caused MySQL Workbench to become unresponsive or to exit. (Bug #22728573, Bug #80359)
  • EER diagram tables were locked to a fixed location in the window for some .mwb files. This fix enables users to unlock the tables within the diagram and to persist those changes by first changing the size of the diagram (click Model, Diagram Properties and Size) and then saving the file. (Bug #22722596, Bug #71533)
  • Performance reports generated by the Export button did not enclose in quotes and escape any string values in the CSV file, making it difficult to read the output when the strings contained commas. (Bug #22700858)
  • Check for Updates from the Help menu failed to detect new releases. (Bug #22578656, Bug #80074)
  • The Filter Rows value set in the Result Grid of a query was not reapplied when the query was changed or refreshed. (Bug #22566018, Bug #80050)
  • When running large queries over an SSH tunnel, MySQL Workbench became unresponsive. (Bug #22494755, Bug #79840)
  • The Export Data operation emitted an unhandled exception when the user connecting to the server lacked privileges on the mysql schema, but had full privileges on the database identified by the operation. (Bug #22478388, Bug #79807)
  • Adding or editing fields in the Table Templates window for a user-defined template caused MySQL Workbench to fail and exit. (Bug #22449752, Bug #79721)
  • Data exported from the Inserts tab of a table in an EER diagram generated invalid JSON syntax. (Bug #22381735, Bug #79673)
  • Some GRANT statements were parsed incorrectly. (Bug #22370783)
  • The Audit Inspector failed to initialize in MySQL Workbench when the locations of the audit log file and data directory were different. (Bug #22277384)
  • GEOMETRY table data failed to export properly into CSV file format and failed to export at all into JSON file format (with an error). (Bug #22269646)
  • Stopping a query before it finished executing often caused MySQL Workbench to stop working. (Bug #22071120, Bug #78881)
  • The placeholder row (last row of the Result Grid with NULL values) was hidden when new rows were inserted and applied. (Bug #22065173, Bug #78294)
  • Saving a reverse-engineered model caused MySQL Workbench to fail and exit. (Bug #21980722, Bug #78357)
  • The cost and data process information added to "EXPLAIN JSON" in MySQL Server 5.7.2 can now be viewed in Workbench. (Bug #21848024)
  • The autocomplete feature did not offer suggestions as expected. The CTRL+SPACEBAR keyboard shortcut can be used to activate this feature. (Bug #21685267, Bug #78185)
  • Some help text was hidden from the Schema Editor in the EER Diagram. (Bug #21630661, Bug #78021)
  • When MySQL Workbench performed a copy-back restore operation, it reported incorrectly to the mysqlbackup log that a copy-back-and-apply-log operation was performed. (Bug #21496475)
  • The require_secure_transport system variable that was added in MySQL Server 5.7.8 is now supported and can be modified using MySQL Workbench. This variable enables administrators to require all client connections to the server to be made using some form of secure transport. (Bug #21484632)
  • A dialog showing the wait time of an attempted connection now displays earlier for improved visibility. (Bug #21264710)
  • Some routine database operations caused MySQL Workbench to fail and exit intermittently. (Bug #21231450, Bug #77286)
  • The slash character (/) when used in the name of a new connection separated a group from the real connection name by default without first notifying the user. This fix gives the user an option to keep the slash character and create a connection group or to replace all slash characters in the connection name with underscore characters. (Bug #21158191, Bug #77175)
  • In a query, UNION and UNION ALL statements that contained data from different tables or different databases returned data in the Result Grid that could be edited and applied to the wrong table. This fix returns read-only data that cannot be edited directly for such queries. (Bug #21046384, Bug #76964)
  • The identifier quote character (`) was missing from the DROP statement when an attempt was made to drop the existing trigger on a database with an illegal character in the name. A syntax error resulted. (Bug #20978108, Bug #76869)
  • The property values of a table in an EER diagram could not be edited from the Properties Editor. (Bug #20930134)
  • Stored procedures containing valid query syntax produced syntax errors. (Bug #20929172, Bug #76761)
  • Some characters could not be inserted into cells of the result grid and displayed the following text-truncation error message: Inserted data has been truncated as the control's limit was reached. Please use the value editor instead for editing such large text data. (Bug #20927915, Bug #76760)
  • SQL Editor did not permit the use of DUAL in a derived-table subquery. (Bug #20800341)
  • When the resultset grid in SQL Editor was set to a font type and size that exceeded the default row height, the output from a query hid a portion the row content instead of increasing the row height to accommodate the font value. (Bug #20794106, Bug #76520)
  • The binlog_group_commit_sync_delay and binlog_group_commit_sync_no_delay_count options that were added in MySQL Server 5.7.5 are now supported, and can be modified using Workbench. (Bug #20712947)
  • Russian language connection names failed to load and display properly in the home screen. (Bug #20697403, Bug #76015)
  • The innodb_page_size MySQL Server system variable can now be changed to either 32k or 64k in Workbench, in addition to the current options. Support for these larger innodb_page_size values was added in MySQL Server 5.7.6. The default value in MySQL 5.7 is 16k. (Bug #20661249)
  • Executing the current statement of a query by using the CTRL+ALT+ENTER keyboard shortcut (Vertical Text Output) partially or fully hid the output. (Bug #20573658, Bug #75959)
  • When closing a tab in the SQL Editor, the focus always returned to the first tab regardless of the number of tabs open. This fix returns focus to the preceding tab (to the left) of the closed tab. (Bug #20351753, Bug #75490)
  • A valid server connection was required before a script or model file could be viewed or edited. (Bug #20326028, Bug #75452)
  • Starting MySQL Workbench from the command line with an optional argument of a script or model file required the absolute (or fully qualified) path name of the file. (Bug #20268606, Bug #75305)
  • SQL Editor identified syntax errors in valid statements that executed properly. (Bug #20116982, Bug #74183)
  • Font sizes were increased in the Home screen for improved readability. (Bug #19982157, Bug #74721)
  • The MySQL Table Editor did not display the name of a selected table within an EER diagram when the editor was first opened. (Bug #19693466, Bug #74102)
  • Because the sys schema is installed by default as of MySQL server 5.7.7, MySQL Workbench now checks for and uses it. Otherwise, MySQL Workbench (as it has since 6.1) provides the option to install it.
  • References: See also: Bug #71207.

New in MySQL Workbench 6.3.8 Build 1228 (Oct 24, 2016)

  • BUGS FIXED:
  • Important Note: During normal operations, MySQL Workbench frequently and unexpectedly closed or became unresponsive. (Bug #24571739, Bug #82778)
  • Compiler errors were resolved with GCC 6.2.1. Thanks to Christian Hesse for the patch. (Bug #24842267, Bug #83372)
  • Using the ->> operator in a valid SQL statement within a stored procedure returned the following error: The object's DDL statement contains syntax errors. (Bug #24693021, Bug #83043)
  • The Columns tab of the table editor displayed an incorrect tooltip description for the G flag. (Bug #24558804)
  • The migration script could not successfully convert UCS-2 strings to UTF-8 in a table when migrating the table from Microsoft SQL Server to MySQL Workbench. (Bug #23751080)
  • Database migration from Microsoft SQL Server 2000 emitted errors and stopped when the operation failed to locate the required schema list associated with the database version. (Bug #23747299, Bug #82069)
  • A CASE statement with WHEN clauses in a stored procedure emitted syntax errors. (Bug #23746795, Bug #82114)
  • On Windows, migrating a table with an empty string in a column of type ntext failed and displayed the “Could not successfully convert UCS-2 string to UTF-8 ...” error message. (Bug #23630604, Bug #81967)
  • When migrating a table with a column of type nvarchar(max) from Microsoft SQL Server, MySQL Workbench found the record to be bigger than the server max_allowed_packet value and failed to copy the record to the server. (Bug #23623191, Bug #81944)
  • The usage graph under InnoDB Status in the Performance Dashboard consistently underreported the actual usage of the InnoDB buffer pool as reported on the server. This fix implements a new formula to represent the InnoDB buffer pool. (Bug #23584042, Bug #81837)
  • Index comments were improperly generated within the index section of an SQL script when using the Forward Engineer SQL Script wizard to create and export the script. (Bug #19896276, Bug #74530)

New in MySQL Workbench 6.3.7 Build 1199 (Jun 14, 2016)

  • Functionality Added or Changed:
  • The Default target MySQL version model preference is now an open text field instead of a dropdown select box. For example, rather than choosing a version such as "5.7", you can now enter a specific version such as 5.7.12.
  • Bugs Fixed
  • A typo was fixed on the Configure Server Management page.
  • On OS X, after creating a new model, and new diagram, right-clicking on the empty diagram background would freeze Workbench.
  • Executing Data Import/Restore would emit an unhandled exception with Import from Self-Contained File enabled.
  • On Linux, the Table Data Export wizard failed to complete the export process.
  • The MySQL Enterprise Backup Restore functionality could emit an unhandled exception under some circumstances.
  • Editing a remote MySQL options file via the Options File management tool would emit an unhandled exception after clicking Apply.
  • Exporting data to JSON was exporting NULL values as NULL instead of null, thus breaking the JSON output.
  • Under Users and Privileges, Workbench did not allow hyphens for host names in the "limit to hosts matching" field.
  • When viewing the code for an existing view (SQL to create the view), hexadecimal values were truncated.
  • Migrating a MySQL source to a MySQL target database would fail for tables that had generated columns, as the target server rejected attempts to insert data into generated columns.
  • Selecting "5.7" from Default target MySQL version did not take into account changes to newer versions, as 5.7 behaved like 5.7.0 instead of a newer version. For example, it was not possible to use the JSON data type for variables inside the stored procedure editor as JSON was added in MySQL 5.7.7.
  • The Schema filter was slow (poor performance) when a lot (1000+) of schemas were present.
  • The database migration wizard database field was described as "Leave blank to select it later" but this text was updated to read as "Cannot be blank" because it is a required field
  • The generated SQL generated by the forward engineering wizard would incorrectly output "VIRTUALCOMMENT" instead of "VIRTUAL COMMENT".
  • An new option is available to specify a path to the SSH configuration and/or known hosts file. This option overwrites the defaults.
  • Workbench's Alter Table functionality did not behave correctly when a column was defined using a TIMESTAMP with fractional seconds, such as TIMESTAMP(1). In this case, some columns would be hidden from the editor.
  • Under Reverse Engineering, the information provided in the wild card description to select objects contained a typo.
  • After successfully executing the database migration wizard, executing it a second time required Workbench to be restarted.
  • When executing Data Export using a remote MySQL connection, the error resulting from a missing mysqldump binary was unclear.
  • The PostgreSQL migration wizard could fail to migrate PostgreSQL databases that were generated with tryton.
  • The Dashboard and Server Status reported different Select per second values. The Server Status page reported incorrect (inflated by about 3x) values
  • The PostgreSQL migration wizard could fail with an "pg_catalog.pg_enum does not exist" error.
  • The Workbench interface would incorrectly orient itself to display as Right-To-Left (RTL) when a system's language is set to a RTL language, despite Workbench not being translated to that language.
  • Attempting to test custom connection details (a connection not yet created by Workbench) caused Workbench to fail and exit. The Test Connection functionality only functioned for existing or new connections.
  • The "Limit to Hosts Matching" field in the user manager would incorrectly report a "Host name contains incorrect characters" error if the host named contained numeric characters.
  • Import and export to JSON format failed if the table had column names that were keywords such as key or value.
  • The Alter Table functionality did not detect a default value change from no default value to an empty string. In other words, adding a default value of "" resulted in Workbench reporting "No changes detected".
  • The DBMS connection keep-alive interval option did not function properly. As a result, Workbench could lose the connection and result in errors similar to "Error Code: 2013. Lost connection to MySQL server during query".
  • All generated paths now will use "/" as the directory separator in order to avoid the "\s" being interpreted as a space, such as "C:\path\to\certs\server-cert.pem" for generated SSL certificates.
  • Importing CSV data with from a properly UTF-8 encoded source would sometimes fail, and instead could result with errors such as "'ascii' codec can't encode character u'\xcf' at position 29: ordinal not in range(128)".
  • With Fabric, Workbench cached the topology information and did not update it when the topology changed, like when switching to a new master.
  • Code completion has been further improved to only show relevant details, such as if a table is referenced in the FROM clause then only show columns from that table and not all from the default schema, and entries have been reordered to show columns first (only preceded by keywords).
  • Some stored procedure definitions were incorrectly reported as having invalid syntax.
  • Executing Alter Stored Procedure with a user lacking SELECT privileges would crash MySQL Workbench
  • With the MySQL Firewall plugin enabled, having a user name containing a single quote character (rare, but not illegal) the queries would fail and produce an error in the Users and Privileges area of Workbench. These checks are now properly escaped.
  • With the validate_password plugin enabled, when Workbench attempted to check the strength of a new password by sending a query to the server, the password was not properly escaped in this query. In such cases, the password was incorrectly reported as a strong or weak password. The associated "SELECT VALIDATE_PASSWORD_STRENGTH" query is now properly escaped.
  • Some internal Workbench queries failed to execute with sql_mode set to ANSI_QUOTES.
  • The Total Time field within the Recent Activity grid of the Online Backup / MySQL Enterprise Backup section of Workbench showed an incorrect duration value.
  • With MySQL Server 5.5 and lower, executing Alter Table on tables with partitions would fail with an error similar to "Syntax error: 'PARTITION' (identifier) is not valid input at this position".
  • MySQL Workbench lacked a CentOS profile, so could fail to make remote connections to a CentOS machine.
  • After opening the stored procedure editor from the object browser, clicking Execute would execute a query that did not take into account the IN parameters.
  • On Windows, the "DEFAULT NULL" value could unintentionally be removed from the "Alter Table" window when clicking on it.
  • The Database Migration migration link on the home page was not functioning immediately after a successful migration.
  • Several grammar and spelling corrections were implemented into the GUI.
  • Under certain circumstances, sub-queries were reported as syntax errors
  • Several SQL Server 2014 database migration improvements.
  • While modeling, pressing the Enter key while editing a document's properties would close the document properties window instead of adding a new line
  • When copying tables, Workbench makes one connection at the start to disable triggers, makes a separate connection to do the data copy, then returns to the first connection to re-enable triggers. If the copy takes longer than the server's wait_timeout, the first connection timed out.
  • The Driver sends Unicode data as UTF-8 advanced database migration option that is available when using an ODBC driver is now disabled by default. Also, connections could hang when this option was enabled.
  • Executing Delete Row(s) after selecting more than six rows from the results grid would not delete all of the selected rows.
  • Adding a DATETIME with precision (such as DATETIME(3)) from the Table Editor would eventually get reverted to DATETIME (without precision).
  • The search (magnifying glass) icon in the schema search field was misplaced after the left sidebar was resized.
  • Workbench will now prompt to continue the execution of operations containing loops in stored procedures, instead of just canceling it after ~200 executions.
  • The Performance Schema installation procedure in Workbench failed to check user privileges before attempting the installation. For example, if the user had all privileges except "ALTER ROUTINE", it would update sys.version but fail to complete the installation, and also fail to back out thereby leaving the sys.version as current but none of the functions were updated.
  • On Linux and OS X, the Options File viewer shortened (cut) long option names in the GUI, although editing their values changed the correct options.
  • MySQL connections were leaked when connecting and disconnecting to MySQL databases. It leaked one connection per re-connect to a database.
  • A large database caused the size reported under the Schema Inspector to wrap around and display a negative number.
  • From the Options File management feature, clicking Discard with the Advanced tab open would always revert the thread_handling option value to "one-thread-per-connection" even if it was set to "no threads".
  • The print preview icon dialog was missing the Workbench icon.
  • Changes to the modeling Appearance font preference did not save properly, or have an effect.
  • On Windows, the Query Stats graph would not render with MySQL Server 5.7.
  • The Query Stats information tab was populated even when the Performance Schema was disabled.
  • The Toggle whether execution of SQL script should continue after failed statements button was updated to better indicate when the option is enabled or disabled.
  • On Windows, after closing and reopening Workbench with several SQL Editor tabs open, the tabs names were hash values (instead of MySQL connection names) if the connection names contained non-standard text.
  • In the Table Editor, if a column has NN checked, and NN is then unchecked, then a default NULL value is automatically added to the CREATE TABLE statement when Apply is clicked. The column then shows a default value of NULL in the Table Editor.
  • If a setting is (incorrectly) defined twice in my.ini, Workbench separates its values with a newline ("\n"). For example, if sort_buffer_size is defined twice, Workbench displays it as "sort_buffer_size=256K\n256K". Workbench now follows MySQL Server behavior, and uses the last defined option.
  • The cursor could seemingly disappear after executing a query, as it could remain at its last position when the query started to execute. (Bug #19703074, Bug #74128)
  • The model Page setup... functionality was not always preserved when choosing a size for printing.

New in MySQL Workbench 6.3.5.0 Build 201 (Oct 21, 2015)

  • Known limitations:
  • The new JSON editor is in an early state, and has a number of usability issues
  • The table editor in a MySQL Workbench model does not allow the JSON data type. The table editor in the SQL Editor is not affected
  • Model synchronization fails to function for tables with JSON columns
  • The MySQL migration wizard will not function with MySQL Server 5.7 as the source database. However, MySQL Server 5.7 can be the target database
  • Creating a MySQL Server 5.7 dump does not function properly
  • Functionality Added or Changed
  • BUGS FIXED:
  • Functionality Added or Changed
  • A JSON viewer/editor was added in the field editor for result sets.
  • Executing Create EER Model from Database with Place imported objects on a diagram enabled would not always create the diagram. (Bug #22046248)
  • On OS X 10.11, a newly opened EER diagram was not always viewable. A workaround was to either scroll or resize the EER diagram window. (Bug #22016760, Bug #78829)
  • MySQL Workbench commercial edition now checks MySQL Enterprise Backup compatibility with MySQL 5.7 when using the Online Backup and Restore features. MySQL Enterprise Backup 4.0 and above is required with MySQL 5.7 and above. (Bug #21972677)
  • On Windows, connecting via RDP to Workbench with a model would cause MySQL Workbench to crash. (Bug #21951171)
  • On Windows with the firewall enabled, either editing a current user or creating a new user from the Users and Privileges tab would crash after clicking Apply. (Bug #21866290)
  • Under Server Status, the reported Disk Space in Data Dir was limited to "1.00 TB", even if more space was available. (Bug #21833382)
  • The SQL parser and grammar was updated; some queries would emit bogus errors, although they would execute with success. For example, queries with syntax such as "ALTER TABLE foo MODIFY COLUMN bar VARCHAR(10)" and "ALTER TABLE foo MODIFY bar INT NOT NULL". (Bug #21776051, Bug #20116935, Bug #77549, Bug #75048)
  • On Windows, creating blocked statements (such as BEGIN...END) with auto-complete activated would cause MySQL Workbench to emit an unhandled exception (Bug #21774642, Bug #77488)
  • On Linux, dragging a routine to a Routine Group did not function. (Bug #21770594, Bug #78299)
  • Opening Open Value in Viewer to view the contents of BLOB and string types would sometimes crash MySQL Workbench. (Bug #21746985, Bug #75516)
  • An SSH timeout option was added, under the Others preferences panel. (Bug #21690190)
  • After opening a model file, after choosing Preferences, Others, checking (enabling) Allow more than one instance of MySQL Workbench to run, clicking OK would crash MySQL Workbench. (Bug #21666322)
  • On Windows 10, MySQL Workbench failed with an error similar to "The type initializer for 'HtmlRenderer.Utils.FontsUtils' threw an exception". The HtmlRenderer.dll DLL was updated with a fix. (Bug #21642135, Bug #75344)
  • Clicking Cancel when using the Table Import wizard would emit an error, although the import process continued. (Bug #21610117, Bug #78013)
  • On OS X, the Rescan for local MySQL instances operation was not discovering local MySQL server connections. (Bug #21605220, Bug #77989)
  • On Windows, and when connecting to MySQL Server 5.7.8 or higher, the Server Logs did not properly display the MySQL error logs, and it instead referred to a file named "stderr" that could not be found. This is because the error log is now written to the Windows Event Log. (Bug #21566823, Bug #77958)
  • Executing Control + W to close all tabs, and then executing it again (with all tabs already closed), would emit a Null Pointer Exception. (Bug #21543454, Bug #77906)
  • When creating new user privileges with access to All Schemas (via the % wildcard), the resulting user record in mysql.db was created with an asterisk (*) in mysql.db.Host and mysql.db.Db instead of using %, resulting in inability to connect to the database.
  • As a workaround, you could have executed queries such as "UPDATE mysql.db SET Host='%', Db='%' WHERE User = 'MyNewUserName'; FLUSH PRIVILEGES;". (Bug #21529564, Bug #77865)
  • Several grammar and spelling fixes were made in the GUI. (Bug #21526053)
  • With MySQL not running, the MySQL Enterprise Backup Restore option would emit an unhandled exception, and it was unable to execute restore operations. (Bug #21496671, Bug #21619525)
  • Expanding the schema tree for a database that contained a large number of tables, such as 20,000 tables, would cause a crash. (Bug #21490728, Bug #77801)
  • The Table Data Import wizard failed to import data into an existing table when a DECIMAL column was used. (Bug #21461807, Bug #77739)
  • Importing a DBDesigner4 schema would sometimes fail, and cause a crash. (Bug #21429693, Bug #77688)
  • After opening a model's EER diagram for the first time, opening the Preferences menu would immediately cause MySQL Workbench to crash, due to some parts being uninitialized. (Bug #21395988, Bug #77662)
  • When copying elements from one diagram to another, the style attributes were not copied, although the position of the elements were retained. (Bug #21384159, Bug #77640)
  • The Performance and Firewall options were missing from the Server menu in the commercial edition. (Bug #21379250)
  • The Unlock the Audit log procedure in the Audit Inspector would sometimes fail due to malformed XML. (Bug #21379224)
  • Sometimes Startup / Shutdown management would ignore the system's profile and use default commands to start and stop the MySQL server. (Bug #21357438)
  • On Linux, with the commercial edition, MySQL Workbench did not delete the cron job after the scheduled online backup was deleted. (Bug #21312652)
  • On Ubuntu 15.04, MySQL Workbench threw a lot of GLib-GObject warnings. (Bug #21292286, Bug #77420)
  • Forward Engineering would sometimes append "COMMENT ''" to field and index definitions. (Bug #21278452, Bug #21429688, Bug #21390162, Bug #77400, Bug #77685, Bug #77644)
  • Making an SSH connection to a server where the fingerprint was not in the known_hosts file, clicking Test Connection under Remote Management would freeze MySQL Workbench. (Bug #21264620)
  • References: This bug was introduced by Bug #21122128.
  • The Data Export wizard failed to include date information when the JSON export type was used instead of CSV. (Bug #21259942, Bug #77364)
  • With the commercial edition, setting up a new Online Backup profile would display an "Error Configuring Backup" error after entering in details, such as the MySQL Enterprise Backup executable path and backup home directory, and then clicking Ok. The settings would not save due to UTF-8 conversion failures in the mysqlwbmeb.py helper file. (Bug #21255978)
  • When importing JSON, the Table Data Import wizard would fail at the Configure Import Settings step, and emit "Can't analyze file, please try to change encoding type...". (Bug #21252834, Bug #77335)
  • After exporting a database with no-create-info checked, the import operation would fail to import it. (Bug #21250323, Bug #71393)
  • In the Table Data Import wizard, the Field Separator dropdown in the Configure Import Settings operation did not list the "," (comma) character. (Bug #21240249)
  • From the Table Data Import wizard, switching the line endings from the Configure Import Settings screen, and then switching it back, would cause the table columns to be displayed on a single line. (Bug #21240215)
  • Improved integer and number recognition for data import/export with CSV files. (Bug #21240092)
  • In the commercial edition, the Audit Log Inspector logo was broken. (Bug #21236152, Bug #77302)
  • With the commercial edition, clicking Firewall after stopping the MySQL Server would emit the following unhandled exception: "'NoneType' object has no attribute 'find'". (Bug #21236051, Bug #77304)
  • The validate_password plugin options are no longer visible in the Options File editor when the plugin is not enabled. (Bug #21187942)
  • With MySQL server not running, and with a MySQL Enterprise Backup configuration file missing, attempting to open either the Online Backup or Restore tabs would throw an unhandled exception. (Bug #21161660)
  • On Fedora, executing Help, Locate Log File / Show Log File would fail to function, due to an underlining problem with glib 2.44. For additional information, see Fedora bug #1175719. (Bug #21113811)
  • In the Audit Inspector, executing Select or Deselect from the Show Columns context-menu would fail to function. (Bug #20956668)
  • Several buttons and text boxes were not always located in the correct location. (Bug #20929972)
  • On OS X, the Shift + Alt + Arrow combination would select individual characters instead of whole words. (Bug #20797766, Bug #76526)
  • References: This bug is a regression of Bug #50085.
  • When executing Start Command Line Client, entering the incorrect MySQL password would immediately close the Window. Now, an error is displayed before the window is closed. (Bug #20737515)
  • The VARBINARY type could not be edited in the results view grid. Clicking Apply to execute the change would emit an error. (Bug #20735501, Bug #76386)
  • On Windows, SSH connections would fail when connecting to a server with pageant running. (Bug #20652700, Bug #76168)
  • The MySQL server connection would sometimes timeout (error 10060) while processing the result set when combined with a large number or rows (e.g., 10,000) and an SSH tunneled MySQL connection. (Bug #20639995, Bug #74557)
  • The Action Output query tooltip would sometimes display information about the wrong query. (Bug #20535654, Bug #75877)
  • On Windows, a scheduled incremental MySQL Enterprise Backup backup job would always choose the latest backup as the base for the backup instead of using the last successful backup. This meant that after a failed backup, future incremental backups would fail until the next successful full backup. (Bug #20533780)
  • The Catalog Tree would truncate table names at around 20 characters. (Bug #20122059, Bug #74995)
  • The able Inspector could fail if the schema name contained a dash. (Bug #20007660, Bug #74788)
  • The bundled SSH library (paramiko) was not capable of supporting the key exchange algorithm (ecdsa) added in OpenSSL 6.7. (Bug #20003201, Bug #74658)
  • When a connection to a MySQL server instance through a SSH Tunnel, MySQL Workbench failed to recognize the server fingerprints stored in the .ssh/known_hosts file, and claimed that the server authenticity could not be established. Clicking Continue also caused the current fingerprint to be removed, after which MySQL Workbench froze.
  • Also, due to a bug in the underlining paramiko library, if a server supported ECDSA and RSA, paramiko would first try to use RSA and, as such, not use ECDSA. For information about this bug, see https://github.com/paramiko/paramiko/issues/243. (Bug #19714350, Bug #74160)
  • The import and export process did not always function with network folders. (Bug #19443451, Bug #73575)

New in MySQL Workbench 6.3.4.0 Build 828 (Jun 15, 2015)

  • Functionality Added or Changed:
  • Added MySQL Enterprise Firewall support. For additional information, see MySQL Enterprise Firewall Interface.
  • On Windows, SQL files are now automatically associated to MySQL Workbench after the installation.
  • Bugs Fixed:
  • Dropped Fedora 20 support, and added Fedora 22 support.

New in MySQL Workbench 6.3.3.0 Build 592 (Apr 23, 2015)

  • Bugs Fixed:
  • Executing a partial MySQL Enterprise Backup job and then clicking Configure Job would emit an unhandled exception for RadioButton_set_active. (Bug #20734865)
  • Copying SQL statements from the history panel would crash MySQL Workbench. (Bug #20724034, Bug #76362)
  • Right-clicking on an out-of-focus empty field under the Inserts editor in the EER modeling table editor would crash MySQL Workbench. (Bug #20692093, Bug #76278)
  • The Schema Transfer Wizard would always report a failure, even when the operation succeeded. (Bug #20680466, Bug #75125)
  • Triggers could not be edited after applying changes to a different trigger. Attempting to do this multiple times could also have caused MySQL Workbench to crash. (Bug #20678160, Bug #76234)
  • While creating or altering a table, the ENUM type handler would remove parentheses and quotes. For example, "enum('One','Two')" would convert to "ENUMOne, Two".
  • Workaround: Review and correct the SQL before submitting the CREATE TABLE or ALTER TABLE. (Bug #20667788, Bug #76214)
  • Stopping a MySQL server service immediately after installing MySQL Workbench would emit an "Unhandled exception: not a string" message.
  • Workaround: restart MySQL Workbench. (Bug #20662285, Bug #76194)
  • The trigger editor would fail to save data for triggers including the BEGIN ... END construct. It would also generate a "GLib-GObject:ERROR:gsignal.c:756:emission_pop: code should not be reached" error. (Bug #20655462, Bug #76082)
  • The StrictHostKeyChecking and UserKnownHostsFile variables are now read from the SSH configuration file when using SSH for a MySQL connection.
  • MySQL Workbench will attempt to load this configuration from the following locations: For Windows, %APPDATA%\MySQL\Workbench\ssh\ssh_config or %APPDATA%\MySQL\Workbench\ssh\config. For Linux and OS X, ~/.ssh/ssh_config or ~/.ssh/config. (Bug #20653285, Bug #75764)
  • Checking an Advanced Options checkbox under Performance Schema Setup would generate an error. (Bug #20630030, Bug #76101)
  • Executing the Table Maintenance action on a table after creating an event would fail with an "invalid column Comment for resultset" error. (Bug #20259610, Bug #75291)
  • Data could not be imported into a result set when the results did not contain a Primary Key. The new import wizard does not have this limitation. (Bug #19881191, Bug #74514)

New in MySQL Workbench 6.3.2.0 Build 444 RC (Mar 13, 2015)

  • Bugs Fixed:
  • The icons for the data import and export features were reversed. (Bug #20645134, Bug #76143)
  • Deleting a MySQL Enterprise Backup partial backup job would generate an unhandled exception. (Bug #20637715, Bug #76129)
  • On Windows, table comments did not appear in the Table Inspector. (Bug #20330742, Bug #75459)
  • While modeling, the tables were no longer being listed in alphabetical order. (Bug #20299714, Bug #75401)
  • The Audit Log inspector no longer requires sudo access to read audit log files, and will only prompt for sudo rights if the audit log is not readable by the MySQL Workbench user. (Bug #20255637, Bug #75288)
  • The MySQL configuration file editor was missing the innodb_buffer_pool_size option. (Bug #20168131, Bug #75131)
  • While modeling, the link between two tables could not be deleted. (Bug #20123214, Bug #75064)
  • The FROM keyword was not listed in the code completion popup. (Bug #18899887, Bug #72862)

New in MySQL Workbench 6.2.5.0 Build 397 (Mar 3, 2015)

  • Bugs Fixed:
  • On Windows, closing MySQL Workbench after opening the SQL editor would cause a MySQL Workbench process to hang (remain active).

New in MySQL Workbench 6.2.3.12312 Build 2280 (Sep 24, 2014)

  • Bugs Fixed:
  • The Set field(s) to NULL result field context-menu option did not function.
  • On Windows, using the key combination Control + Shift + Z after altering a view could cause a crash.
  • On Windows, the Data Export functionality was escaping the $ symbol in table names, which resulted in mysqldump failing to find the table.
  • In the SQL editor, code completion would freeze MySQL Workbench when used with a large (1000+ tables) database.

New in MySQL Workbench 6.2.2 RC (Sep 24, 2014)

  • Functionality Added or Changed:
  • The following SSL related changes were introduced:
  • The Use SSL option for SSL connection options was changed to a dropdown, where you can select one of: No, If Available, or Required.
  • If Required is selected, the connection will fail if a SSL connection cannot be enabled.
  • New MySQL connections default to If available.
  • The Test Connection button now shows whether SSL was enabled when the connection was opened.
  • The Session Information panel in the SQL Editor sidebar shows is SSL is enabled, and also the Cipher in use.
  • Indentation is now respected in the SQL and code editors, when before the current indention level would be forgotten. New lines now start at the previous indention level.
  • The tab key now inserts a tab character into the query editor, when before it inserted three spaces.
  • Bugs Fixed:
  • The document tab controls now block mouse movements when the button is down, as to prevent accidental window dragging.
  • Selecting a color from color picker on a table would generate an invalid color value.
  • On Windows, the catalog treeview now has tooltips to show object names of any length. On Linux, this information is available from a new column.
  • The Commit results edits and Discard results Edits options would sometimes be hidden from view.
  • The server management functionality would sometimes fail with connections using SSH tunneling.
  • If a transaction was already open with auto-commit disabled, there was a dialog that prompted to commit the open transaction before applying the changes. That dialog was simplified to only offer Apply and Cancel options. This dialog still has no effect on the transaction for applying the result set itself.
  • Also, the result set changes will no longer be committed if a transaction was already open when Apply is clicked. With auto-commit enabled, the old behavior of applying the change inside a new transaction is maintained.
  • The SQL beautification feature would change "NOW()" to "NOW ()" (note the inserted space), which created an SQL syntax error.
  • Executing Execute (All or selection) to Text on queries that SELECT from empty tables failed and generate an error similar to "Error during "Execute Query Into Text Output" error calling Python module function SQLIDEUtils.executeQueryAsText".
  • Clicking the spatial view in the results tab could cause a crash.
  • Several typos were fixed in the GUI descriptions, such as "Program Fiels" to "Program Files".
  • With the presence of char(0) (0x00) in data fields, exporting result sets to CSV would sometimes generate corrupt data.
  • When there were multiple result sets, then only one was shown in the output pane when using "Vertical Output" output type.
  • The Queries per Second metric was renamed to Selects per Second, to avoid confusion.
  • On OS X, changing database settings would cause a crash.
  • The --script parameter, which is meant to load an SQL script into a query editor, will now explicitly emit a warning when it is mistakenly used with a Python script.
  • On Linux, clicking the "Zoom out the diagram" icon in the Visual Explain interface would cause a crash.
  • Quickly clicking Apply twice after editing a result set entry would cause a crash.
  • After adding enough SQL statements in the SQL editor to require scrolling, and scrolling to the bottom statement and executing it, the SQL window would automatically scroll to the top statement. Now, the cursor position is preserved.
  • The CHAR() data type was added to the SQL and Model editors.
  • The three columns widths under Status and system variables can now be resized.
  • Under certain conditions, Visual Explain would only display the raw explain data.
  • The form editor would only display up to 250 characters.
  • Saving a query in the SQL editor would clear the undo history.
  • The "column privileges" section in the Table Inspector contained an extra third column.
  • When exporting a database, MySQL Workbench now checks and notifies the user when the bundled or configured mysqldump is older than the target MySQL version, and prompts the user to set Path to mysqldump Tool in MySQL Workbench to the appropriate version.
  • Clicking Help, Report a Bug did not function.
  • The History Output window failed to handle a change to the system's date.
  • Clicking Import or Export from a Model's table properties Inserts tab did not function.
  • On OS X, executing a query would sometimes hide the results grid.
  • New lines inside an SQL statement comment would truncate the comment at the new line.
  • The results grid columns only showed a small number of characters.
  • On Linux, assigning a referenced foreign key could cause a crash.
  • MySQL Workbench incorrectly reported that the current user did not have permission to execute a SELECT query that requested values from columns that the user was explicitly granted SELECT permission.
  • The generated code from an EER diagram would sometimes add the Primary Key in the wrong order.
  • Expanding the schema list in the object browser could take a long time to execute, depending on the number of procedures present. Now, mysql.proc is used to get procedure and function information, with the previously used (and less efficient) SHOW PROCEDURE STATUS as a fallback option.
  • On Linux, the BLOB columns were not viewable in the query results editor.
  • The bundled MySQL Workbench documentation was removed, and it was replaced with a link to the official online manual.
  • Importing or exporting data records to/from a table to/from an external file would cause a crash.
  • While executing the Forward Engineering wizard after renaming a schema, the routines and views were not exported when the Omit Schema Qualifier option was selected.
  • Migrating SQL Server 2005 tables with timestamps would not import the timestamp column data.
  • The object dialog tooltip remained viewable when an object was dragged.
  • Corrupted tables were listed under the Views tab, instead of being listed under the Tables tab.
  • In the schema inspector, the Copy to Clipboard and Send to SQL Editor context menu options did not function.
  • The Notifications tab in the Scripting Shell was missing its panel title.
  • The MySQL 5.7+ implementation of the server-side statement timeout syntax is now supported in the syntax checker, configuration editor, and error handler. Example syntax includes "SELECT MAX_STATEMENT_TIME = 1 * FROM SAKILA.actor".
  • The Export Recordset dialog was too wide.
  • The DBdoc Model reporting feature did not function.
  • Executing a model to database synchronization immediately after the model was forward engineered would show too many differences.
  • Connections using SSH tunneling would sometimes die after a short idle period.
  • Migrating from Sybase ASE could generate an incorrect connection string.
  • The comment input box for a model view was too short.
  • The Previous and Next buttons did not function after loading a large audit file in the Audit Inspector.
  • In the table inspector, the Drop Index button would be pushed off the screen (hidden) when the index name was too long.
  • The performance dashboard tooltips would remain open and cover other GUI elements.
  • When migrating from Microsoft SQL Server 2008 to MySQL 5.6+, copying a table with the column type DATETIME using milliseconds precision would only fill the target entry milliseconds as .000.
  • Some options were listed twice in the Relay Log box in the Replication tab of the Options File window, options such as relay-log-index, relay-log-recovery, and relay-log-info-file.
  • The query tab names would be forgotten after closing MySQL Workbench, and these tab names are now preserved across sessions.
  • SSH authentication would sometimes fail when the password was not saved to the vault.
  • On 64-bit operating systems, MySQL Workbench would display the incorrect default value for the "thread_stack" system variable.
  • The "expanded" property in the Property Editor was ignored when opening an EER Diagram. All routine groups were expanded, regardless of the "expanded" setting. Expanded, manual sizing, and any other properties are now persistent.
  • The innodb_buffer_pool_size option was listed twice under option file management.
  • On Windows, the Schema transfer wizard background image was cropped. This background image was removed.
  • The migration wizard would not migrate PostgreSQL to MySQL server 5.7.
  • The "word wrap" state is now preserved across SQL tabs and MySQL Workbench sessions.
  • Empty user names are no longer allowed.
  • Closing an ERR Model would not release an appropriate amount of RAM.
  • When the ALTER Table editor had changes committed and an error occurred, it would attempt to re-create the original object. However, that was not functioning correctly most of the time, so this feature was completely removed to avoid confusing error messages.
  • On Windows, the dialog windows would appear under the Windows task bar.
  • Draggable boxes were difficult to locate when the model view zoom was lowered.
  • The migration wizard now sets "SQL_MODE=NO_AUTO_VALUE_ON_ZERO" before copying data, which causes auto_increment field values of 0 to be copied as 0.

New in MySQL Workbench 6.2.1 Beta (Sep 24, 2014)

  • Bugs Fixed:
  • Adding comments for a column in a model would sometimes generate special characters.
  • The word "International" was written as "Iternational" in the Administration panel.
  • Tables could not be clicked-and-dragged after closing any other EER diagram tab.
  • After editing a table column and then returning focus to the diagram view, the table name field would incorrectly take the focus.
  • The "show captions next to relationships" option would cause the captions to overlap.
  • The automatic context help did not always function in the SQL editor.
  • On Windows, the command line character limit affected the data export function for self-contained files, as a full list of tables was passed to the mysqldump utility but the character limit meant some tables were not exported.
  • Sometimes a new MySQL Enterprise Backup 3.9.x partial backup failed.

New in MySQL Workbench 6.2.0 (Sep 24, 2014)

  • Functionality Added or Changed:
  • The schema navigator now includes new overlay icons for common operations such as table data view, table edit, and table/schema inspector.
  • The NONBLOCKING modifier (SHOW SLAVE STATUS NONBLOCKING) in MySQL 5.7+ is now supported.
  • An option was added that converts SQL keywords to uppercase when using the SQL beautification tool.
  • A new "Pin Tab" feature was added that saves (pins) result set tabs to the SQL Editor. To use, right-click on a result set menu and select Pin Tab from the context menu.
  • Shared SQL snippets were added. They allow multiple users to share SQL code by storing the snippets in a shared MySQL instance.
  • For Microsoft Windows, 64-bit binaries are now built to go along with the 32-bit versions.
  • An option to include (attach) SQL scripts was added in the forward engineer and synchronization wizards.
  • A new spatial data viewer that offers graphical views of result sets containing GEOMETRY data. This utilizes the GIS capabilities in MySQL 5.7+.
  • The MySQL 5.7 SQL syntax and configuration options are now supported.
  • The Metadata Locks view shows the locked connections that are blocked or being waiting on.
  • MySQL Fabric cluster connectivity: Browse, view status, and connect to any MySQL instance in a Fabric Cluster.
  • The migration wizard now supports migration from Microsoft Access.
  • The improved results handling include better column auto-sizing and saved width preferences. The fonts can also be customized.
  • The result tabs can now be "pinned" for persistent data views.
  • The Run SQL Script command can now be executed on SQL scripts, without first loading the scripts.
  • Database modeling was updated to allow changes to the formatting of note objects, and attached SQL scripts can now be included in the forward engineering and synchronization scripts.
  • The result set panel now integrates Visual Explain, and offers an execution plan for all executed queries.
  • Visual Explain now allows you to "drill down" into large to very large explain plans.
  • Bugs Fixed:
  • A clear warning was added that fully enabling all "Performance Schema" instrumentation options causes performance degradation.
  • The results grid Filter Rows box failed to filter out partial matches.
  • When importing a CSV file, only the first line was displayed.
  • The refresh button on the results grid did not function.
  • A newly created SSH / TCP connection required MySQL Workbench to be restarted before it could be used with Enterprise features.
  • Column widths in the results view window would sometimes not fit, thus requiring the columns to be resized manually.
  • In addition to the autofit function being fixed, adjusted column widths are now preserved.
  • The log viewer did not take into account the log file changes in MySQL server 5.7.2+.
  • The SQL parser was updated to reflect the SQL grammar changes in MySQL 5.7.
  • Multiple trigger support in MySQL server 5.7+ was added.
  • Sort on numeric columns did not function properly.
  • A specific error message was added for failed MySQL connections when the max_user_connections limit was reached.
  • The text boxes in the "Object" and "Session" windows could be edited.
  • The mouseover tooltips in the Visual Explain window would sometimes hide unrelated content.
  • A new configuration option was added to configure the font in the results view window.
  • Models that were auto-saved could not be recovered.
  • The "precision" keyword was not considered valid in MySQL Workbench. The SQL editor, reverse engineering wizard, and table editor were updated to accept the "precision" keyword.
  • Opening BLOB field data (such as an average sized image) in the Value Editor could take 10-40 seconds to load.
  • In the scripting editor, the Control + F keyboard shortcut inserted an ACK character instead of loading the "Find and Replace" dialog.
  • Reordering tabs could cause query execution in an unexpected tab.
  • The Control + S keyboard shortcut would not save the Python file in the scripting shell.
  • Textual content would not wrap the text when resizing a text object.
  • A new context menu item was added that adds all tables in the privileges role editor.
  • A new button was added to select all privileges when assigning privileges to a role.
  • On Microsoft Windows, the Microsoft visual C++ 2013 redistributable package is now used instead of the 2010 version.

New in MySQL Workbench 6.1.7.11891 Buld 1788 (Jun 30, 2014)

  • Bugs Fixed:
  • Security Fix: The linked OpenSSL library for MySQL Workbench Commercial 6.1.7 has been updated from version 1.0.1g to version 1.0.1h. Versions of OpenSSL prior to and including 1.0.1g are reported to be vulnerable to CVE-2014-0224.
  • This change does not affect the Oracle-produced MySQL Community build of MySQL Workbench 6.1.7, which uses the yaSSL library instead. (CVE-2014-0224)
  • Under certain conditions (with a subquery), Visual Explain would fail with the error "error calling Python module function SQLIDEQueryAnalysis.visualExplain", even when the tabular EXPLAIN was properly generated. (Bug #18997475, Bug #72725)
  • The Backup Recovery process could fail and generate an unhandled exception titled "list indices must be integers, not NoneType" after clicking Cancel. General improvements were made to this functionality. (Bug #18925451)
  • The Form Editor could generate an "Index was out of range" error after adding a new record and then clicking Add Record. (Bug #18891983, Bug #72844)
  • The schema selection step of the migration wizard would not display the complete names of the schemas nor complete the migration process if the schema name contained a dot. (Bug #18844624, Bug #72757)
  • Sometimes MySQL Workbench would crash when connecting to a remote Linux host using SSH. (Bug #18817608, Bug #72486)
  • The Backup Restore action would hang with a MySQL server running in a MySQL Sandbox environment that used MySQL Sandbox to start/stop the MySQL server. (Bug #18814560)
  • On Ubuntu 14, the dependency check was updated to allow any of mysql-client, mysql-client-5.6 or mysql-community-client client libraries. Previously, the dependency check could fail. (Bug #18841046, Bug #72729)
  • With the Move Model tool enabled, dragging a model while hovering (and pausing) over a table would generate a tooltip that would not go away. (Bug #18718801, Bug #72555)
  • Executing the following steps (in order) would generate an error: change layer name, change layer color, and then resize layer. (Bug #18760955, Bug #72647)
  • For a new EER diagram, editing a text object after adding a different text object could cause MySQL Workbench to crash.
  • A workaround was to close the new diagram and model, and then reopen the model and diagram. (Bug #18718784, Bug #72559)
  • MySQL error code 1698 (ER_ACCESS_DENIED_NO_PASSWORD_ERROR) is now handled as an authentication error. (Bug #18711142, Bug #72536)
  • After enabling Import from Folder in the Data Import / Restore wizard for a connection, doing the same for a second connection would reset (deselect) this option in the first connection. (Bug #18685308, Bug #72492)
  • A new "Override sudo command line" option was added to the connection manager under the System Profile in the connection editor for systems other than Windows. It can (optionally) configure the sudo command line to use on any operation requiring root access for administration tasks.
  • If left blank (the default), MySQL Workbench continue to pass in -S and -p. Otherwise, you can replace the default sudo command. This should only be defined if the server configuration requires it. (Bug #18679748)
  • For Linux, Ubuntu 14.04 builds now exist. (Bug #18622692, Bug #72388)
  • On Mac OS X, pressing Option + Shift with the Arrow buttons did not function as expected in the SQL editor. This key combination selects adds a word (string) to the current selection. (Bug #18385643, Bug #72014)
  • When creating a table, the FULLTEXT and SPATIAL index types were not present in the index type drop-down list when non-MyISAM tables were selected. (Bug #18376840, Bug #71998)

New in MySQL Workbench 6.1.6.11834 Buld 1642 (May 17, 2014)

  • Functionality Added or Changed:
  • MySQL Workbench now shows a SSH fingerprint dialog box when connecting to an SSH server, to notify you when the fingerprint does not correspond to the fingerprint stored (in known_hosts) for that particular server.
  • Bugs Fixed:
  • MySQL Workbench could crash with a MySQL connection that was defined with an unprivileged MySQL user.
  • On Mac OS X, the code completion tooltip could be displayed on top of a non-Workbench application.
  • The Show in Editor functionality from the Client Connections context-menu would not function (the option was grayed out).
  • The following scenario generated a segmentation fault in the EER diagram editor: Double-click a table with a FK, double-click a table with a FK, select the Foreign Keys tab, and to generate the "Index out of range" error and segfault, either double-click an existing table or create a new table.
  • The Don't create table placeholder for views option of the Forward Engineer SQL Create Script wizard did not function.
  • Closing the Stored Procedure Editor after changing a stored procedure (and clicking Apply) would emit an "Object reference not set to an instance of an object." error.
  • When generating a Visual Explain report, a group operation would cause the generated JSON output to contain a node error.
  • Subsequent executions of Query, Execute (All or Selection) to Text would cause the result's tab title from the previous execution to turn blank.
  • In the EER diagram editor, tooltips are now hidden when mouse movements or clicks are registered, and they are also hidden when switching applications.
  • With the Collect Resultset Field Metadata disabled, the Form Editor results view was blank. It now displays a message asking the user to enable the required Query, Collect Resultset Field Metadata preference.
  • Altering (adding values to) an ENUM column potentially caused MySQL Workbench to crash.
  • The Query Stats panel contained the string "sigle" instead of the word "single."
  • Clicking a column header in an SQL result view sorts rows in ascending order, but clicking the column header a second time would not sort the rows in descending order.
  • Executing the Select Objects to Forward Engineer step in the Forward Engineering wizard would crash MySQL Workbench each time the wizard is executed after the first time. In other words, the wizard would only execute every step with success during its initial (first) execution.
  • Executing a Visual Explain would sometimes generate an error with the text "Error calling Python module function QLIDEQueryAnalysis.visualExplain".
  • After clicking Apply to save changes to a result set in the SQL editor, the executed SQL statement was no longer being displayed.
  • Executing Backup Restore with a MySQL user lacking the proper permissions would generate an unhandled exception.
  • The PERFORMANCE schema navigator tab was disabled for MySQL server 5.5 (and below) MySQL connections, as the system requires a MySQL server 5.6 (and above) connection. Attempting a MySQL server 5.5 would report an error about a missing sys_55.sql configuration file.
  • Rapidly clicking Execute in a SQL session too frequently sometimes caused MySQL Workbench to crash.
  • On Mac OS X, the background banner for the 6.1 installer (DMG file) incorrectly displayed 6.0.
  • On Microsoft Windows, the Management, Client Connections, View Thread Stack feature failed to function.
  • Mixed case and lower cased triggers were not properly displayed in the Alter Table tab, causing them to not be visible or editable.
  • A MySQL connection that was created without a defined username and password would fail to open, despite prompting for the username and password.
  • On Mac OS X, and after adding a backtick character on a German keyboard in the SQL editor, MySQL Workbench would crash after advancing from the backtick using Space while the code-completion drop-down was visible.
  • Visual Explain could fail to function for large EXPLAIN plans.
  • MySQL Workbench will now use the default schema when set, or use the last active schema even if after closing MySQL Workbench. Before, the last active schema was not preserved after a restart.
  • On Mac OS X, when a Model Validation Plugin was executed on a non-empty document, only the first of the calls succeeded. All subsequent calls to these plugins showed an "Cannot execute db.plugin.wb.validate. Plugin requires unavailable argument value" error.
  • Labels could be cut off from the exported image when exporting a Visual Explain, if there were "many" objects.
  • The bundled MySQL client library was upgraded to version 5.6.17, to solve the following MySQL client issue:
  • MySQL client programs from a Community Edition distribution could not connect using SSL to a MySQL server from an Enterprise Edition. This was due to a difference in certificate handling by yaSSL and OpenSSL (used for Community and Enterprise, respectively). OpenSSL expected a blank certificate to be sent when not all of the --ssl-ca, --ssl-cert, and --ssl-key options were specified, and yaSSL did not do so. To resolve this, yaSSL has been modified to send a blank certificate when an option is missing.
  • The File, Import, Import DBDesigner4 model operation would fail and generate an error.

New in MySQL Workbench 6.1.5 (May 17, 2014)

  • Bugs Fixed:
  • Security Fix: MySQL Workbench Commercial has updated the bundled MySQL client library and command-line clients (mysql and mysqldump) to MySQL 5.6.18, to use OpenSSL version 1.0.1g, which has been publicly reported as not vulnerable to CVE-2014-0160. Please see Oracle Note #1645479.1 for further details.
  • Since the only change in MySQL 5.6.18 is the inclusion of OpenSSL libraries publicly reported as unaffected by CVE-2014-0160, and since Oracle-produced MySQL Community builds use YaSSL libraries which have been reported as not affected by CVE-2014-0160, Oracle will not produce builds for MySQL Workbench Community for version 6.1.5. This means the Community edition of MySQL Workbench will skip version 6.1.5.

New in MySQL Workbench 6.1.4.11773 Build 1454 (Apr 1, 2014)

  • On Microsoft Windows, several ".pyc" files remained after uninstalling MySQL Workbench.
  • With MySQL Enterprise Backup, validation was added when backing up schemas without tables.
  • Executing Backup recovery after a full Online backup could cause a crash.

New in MySQL Workbench 6.1.3.11769 Build 1435 RC (Mar 25, 2014)

  • Functionality Added or Changed:
  • The Beautify query feature was changed. It now only affects the current statement, unless there is an explicit selection. Before, it would reformat all statements in the window by default.
  • The default schema is now expanded automatically when a connection is opened, or when the default schema changes.
  • A new Create Missing Local Connections option was added to the right-click context menu on the Home screen. It attempts to identify and create connections to locally installed MySQL servers.
  • A specific connection string can now be passed to the --query command-line option at startup, in the form of "--query user@host:port". If this connection string does not already exist, then it will be created.
  • MySQL Workbench now checks if the lower_case_table_name variable is correctly set on Microsoft Windows and Mac OS X systems. If not, then MySQL Workbench will display a dialog after connect, and emit a warning message when performing synchronization or reverse engineering actions.
  • New Report a Bug functionality now opens a browser with the MySQL bug page pre-populated with MySQL Workbench data. This also allows MySQL Workbench to be fully manipulated while submitting the bug report.
  • Bugs Fixed:
  • The local private key file for an SSH connection when executing Remote Connection in MySQL Workbench through SSH could not be saved to a folder with accented characters.
  • FOUND_ROWS() (after a SQL_CALC_FOUND_ROWS statement) returned 1 (true) instead of the number of found rows.
  • Exported JSON string delimiters used double quotes instead of single quotes, and the exported JSON file extension changed from .js to .json.
  • Some user interface (UI) elements explicitly set a background color but not a font color, and vice-versa.
  • The Shift + Control + Arrow Key (left or right) now moves the cursor word-by-word in the SQL code editor, to go along with the character-by-character Shift + Arrow Key functionality.
  • A Show schema name diagram preference was added. If enabled, it shows the schema name in the table heading of an EER Diagram.
  • When migrating from Microsoft SQL Server, nVarchar(n) columns would always migrate to a MySQL VARCHAR(n) column that was twice the size.
  • While executing the Migration Wizard, successfully entered credentials during a Test Connection remained in cache until the migration tab was closed, despite the Save password in keychain option not being enabled. The connection is now closed after executing Test Connection.
  • After copying and pasting tables within the Alter Table panel, clicking Apply would return "No changes detected" instead of detecting the changes. Copied and pasted entries (from the clipboard) are now detected and saved.
  • The Check for updates operation failed to function for the commercial edition.
  • MySQL Workbench will now see the NO ACTION and RESTRICT referential action options as two different options.
  • The values "true" and "false" are now converted to "1" and "0" if the column is a BOOLEAN or TINYINT. Also, synchronizing a BOOLEAN against a TINYINT no longer generates any differences, when before it might generate SQL that "changed" TINYINT columns to TINYINT.
  • When migrating from Microsoft SQL Server, mapping a VARCHAR column to TEXT would still attempt to migrate it to VARCHAR, which could yield an error if the VARCHAR exceeded the maximum size. It now properly maps to TEXT.
  • When migrating from Microsoft SQL Server, column names greater than 64 characters were automatically renamed with the object migration component. The schema creation created the new table structure as expected, but later the bulk migration bulk data transfer attempted to import data to the original column names.
  • The Store connection for future usage option in the Database Migration wizard did not store the defined MySQL connections.
  • Saved connections would sometimes not function (connect) properly unless the password was saved to the local vault.
  • When migrating from Microsoft SQL Server, DECIMAL(n, n) columns did not properly migrate to BIGINT(n).
  • When migrating from Microsoft SQL Server, Varchar(MAX) is now imported as LONGTEXT, instead of the erroneous VARCHAR(-1).
  • Altering a table's comment would immediately move the cursor position to the end of the comment. A workaround was to copy-n-paste a comment into this window.
  • On Linux, using a GTK theme with light font colors would cause the schema listing to be difficult to read.
  • MySQL Workbench failed to reverse engineer tables containing TIME(n) and DATETIME(n) (fractional timestamp) columns.
  • Executing Execute Now for a defined backup job would finish successfully, but would also report an error.
  • When multiple versions of MySQL Enterprise Backup were installed, the MySQL Backup Command Path would include both paths. Now, the first discovered path is used, and a warning about having multiple MySQL Enterprise Backup installations is logged.
  • The MySQL keywords were sometimes blank (missing) in the SQL Additions panel.
  • The Migration Wizard Overview text was updated to reflect better grammar.
  • When too many tabs are present in MySQL Workbench, a double arrow now appears in the right top corner. When clicked, a list of the hidden tabs will appear.
  • The MySQL Workbench Scripting Shell did not allow tabs or spaces for indentation in interactive Python scripts. A workaround was to instead create and execute script files.
  • Sometimes the Report Bug window would remain open, even after pressing Cancel.
  • The panel dimensions for an EER diagram are now preserved. This left panel stores the descriptions, properties, and history tabs.
  • The Synchronize Model routine would only notice changes to some triggers, while ignoring changes to others. It would not update these triggers even if forced by using the Update Source button.
  • MySQL Workbench would allow a table group to be renamed using a reserved MySQL keyword.

New in MySQL Workbench 6.0.9.11421 (Feb 6, 2014)

  • Functionality Added or Changed:
  • The restore operation can restore to a different schema. (Bug #11759068, Bug #51351)
  • Bugs Fixed:
  • Sometimes, when exporting an EER diagram to SQL, the generated SQL code did not include "DROP SCHEMA" statements even with the Generate DROP SCHEMA option checked. (Bug #18054932, Bug #71243)
  • One tab could execute the query from a different tab, after swapping tabs. (Bug #17903147, Bug #71029)
  • After creating a new view inside a model, clicking Add View would display a new view in the editor this new could not be saved. (Bug #17796027, Bug #70904)
  • The --routines command line option was missing from the generated mysqldump command when multiple schemas were selected for a dump into a single file backup when the routines option was enabled. This could happen after executing the dump multiple times. (Bug #17795551, Bug #70896)
  • Executing Model, Forward Engineering with the Do not create users, only export privileges option enabled would recreate the user instead of simply changing privileges for the existing user. (Bug #17794653, Bug #70903)
  • Adding a new table to an empty EER diagram would crash MySQL Workbench. (Bug #17775383, Bug #70872)
  • When building from source and without building the documentation, the documentation link will open the online MySQL Workbench manual. (Bug #17788936, Bug #70873)
  • The Inserts tab under Forward Engineering would sometimes unexpectedly fail. (Bug #17698069, Bug #70747)
  • The ENUM type now corresponds better to its definition better under Model, User Defined Types, to allow arguments. (Bug #17633506, Bug #70671)
  • On Microsoft Windows, the bundled PyCrypto library was upgraded to version 2.6.1. (Bug #17615430)
  • MySQL Workbench could crash when using a MySQL connection that connects via an SSH tunnel with success, but is defined using incorrect MySQL server credentials. A dialog now requests the correct information. (Bug #17456433, Bug #70332)
  • The catalog treeview for an EER diagram was replaced by a central control with improved handling, which allows MySQL Workbench to worth more smoothly with a large number of tables. (Bug #17370413, Bug #69692)
  • Indexes that were auto-created for a Foreign Key can now be deleted in case another suitable index was available. (Bug #17275827, Bug #69937)
  • Under certain scenarios, the File, Print to File... action would not allow models to be unchecked. (Bug #17300434)
  • Model synchronization would complete, but if repeated then MySQL Workbench would ask to update the database again. (Bug #17033354, Bug #69591)
  • Changing the collation type would not always be detected, as "No changes detected" would be reported after attempting to apply the change. (Bug #16492371, Bug #68672)
  • The MySQL Forums link on the MySQL Workbench home page was updated, and it now links to a MySQL Workbench page that also links to the MySQL Workbench - Database Migration forum, when before it was difficult to find. (Bug #14773380, Bug #67272)
  • From Database, Reverse Engineer, and after selecting a schema with multiple tables, clicking the left or right arrow buttons with the Show Filter feature to include/exclude tables would lose the cursor position, and always move the cursor to the top of the list. (Bug #14017237, Bug #65018)
  • For models, tables can now be renamed by double-clicking the name column, and the columns edited. (Bug #13702831, Bug #64134)
  • A large SQL script file could not be saved for a model, although a limit of around 200MB limit still exists. (Bug #13025333)
  • MySQL Workbench could crash after choosing Recover when prompted to recover a model file from a previous session after MySQL Workbench was not closed properly. (Bug #13051204, Bug #62589)
  • Applying an large SQL Script object to a model could crash MySQL Workbench. (Bug #13025299)
  • The "Scratch" SQL editor tabs were removed, and instead standard SQL editor tabs are always opened. (Bug #11765876, Bug #58882)
  • Editing a mandatory relationship now updates the referenced column. (Bug #11764011, Bug #56792)
  • The Copy and Paste keyboard shortcut did not always function from within table cells in all environments. (Bug #11755245, Bug #46994)
  • The Schema Privileges tab was hidden in the Schema editor, and is now more viewable. (Bug #11758814, Bug #51066)

New in MySQL Workbench 6.0.8.11354 (Nov 8, 2013)

  • Functionality Added or Changed:
  • A new MySQL Workbench preference (Preferences, SQL Editor) was added that sets the default comment type that is generated in the SQL Editor when clicking the "add comment" key combination. It can be either "--" (default) or "#". (Bug #16679373, Bug #68708)
  • Bugs Fixed:
  • When creating a table on a model diagram, an unhandled NULL reference exception was thrown when a second layer was drawn under some tables. (Bug #17561185, Bug #70518)
  • Restoring an incremental backup from a remote MySQL server would emit an unexpected error that referred to the WbAdminControl object. (Bug #17516320)
  • The Forward Engineer - SQL Create Script wizard would generate the LOCK TABLES privilege at the table level, instead of the database level. (Bug #17468314, Bug #70310)
  • On Microsoft Windows, after executing Search Table Data and viewing the results, right-clicking on a row and choosing Copy Query for Matches from the context menu would crash MySQL Workbench. (Bug #17506404, Bug #70411)
  • On Microsoft Windows 7, under some circumstances MySQL Workbench would not connect to a MySQL server on a RHEL 5 host. (Bug #17516617)
  • With Use most recent backup checked, an incremental backup made after another incremental backup would not be restored if the previous incremental backup failed. (Bug #17509626)
  • In the data result grid, selecting multiple fields and choosing Set Field(s) not Null from the context-menu would not alter the data. (Bug #17495179, Bug #70381)
  • When forward engineering an SQL CREATE script, checking the Omit Schema Qualifier preference would correctly remove the schema name from the CREATE statements, but it incorrectly left the schema name on the GRANT statements.
  • Command sequence: File, Export, Forward engineer SQL CREATE script. (Bug #17516695, Bug #70438)
  • On Microsoft Windows, having an empty SQL file saved in the AppData path would cause MySQL Workbench to not start.
  • A workaround was to delete the empty SQL file before starting MySQL Workbench. (Bug #17512088, Bug #70262)
  • An empty SQL script file could not be saved from within MySQL Workbench, and attempting this action would generate an unexpected error. (Bug #17468833, Bug #70365)
  • Executing Forward Engineer the Model to the local DB would generate an unexpected error. (Bug #17496362)
  • An unhandled exception would be thrown if the audit.log file was missing. (Bug #17452099, Bug #70323)
  • Data Import/Export for self-contained data will now only select *.sql files by default, and if an extension is not defined during an export, the extension will be set to .sql. (Bug #17449969, Bug #69069)
  • On Microsoft Windows, the mouse pointer inside a SQL Editor tab would rapidly change from pointer to cursor when the mouse was moved, thus creating a repeatedly flashing event. (Bug #17347406, Bug #70119)
  • Clicking Online Backup after deleting the configured MySQL Enterprise Backup directory (such as C:\MySQLBackupHome) would throw an unhandled exception.
  • Validation was added, a profile status icon was added to the backup screen, and MySQL Workbench now redirects to the Settings page instead of emitting an error. (Bug #17375285)
  • Double-clicking on an Audit Log File row would generate an unexpected error. (Bug #17376494)
  • While migrating a Microsoft SQL Server database to MySQL, database names with periods would fail, and now the periods are replaced with underscores. For example, "foo.bar" will become "foo_bar". (Bug #17370098, Bug #70170)
  • After selecting a table in the Catalog tab of the Catalog Tree pane, choosing Insert new row from the Edit Table... context menu would emit an unexpected error. (Bug #17357020, Bug #70140)
  • After editing a trigger in the model tab, switching tabs (such as loading a connection or SQL editor tab) would cause the new trigger edits to disappear. (Bug #17348212, Bug #70122)
  • Open query tabs were not persistent (reopened) after reopening MySQL Workbench. (Bug #17341182, Bug #17456474, Bug #17314977, Bug #70107, Bug #70325, Bug #70035)
  • Viewing the Client Connection could generate an unhandled exception if a connection had a very large connection time. (Bug #17375435, Bug #70174)
  • The EER Diagram did not support some Chinese characters. (Bug #17275879, Bug #69933)
  • Having a !include in the MySQL configuration file would cause MySQL Workbench to crash at startup. (Bug #17271775)
  • Stored routine groups could not be updated via the group editor in the EER diagram.
  • A workaround is to use individual routine group editors for each routine, by dragging the routine objects into the members list of the routine group editor to group them. (Bug #17323855, Bug #70059)
  • I/O writes were reduced, which was especially a problem visible when closing MySQL Workbench with tables that had over 500 columns. (Bug #17283888, Bug #68276)
  • The Run, Script File sequence did not function. (Bug #17299680)
  • In the commercial edition of MySQL Workbench, the "MySQL Utilities" download button linked to the community version of MySQL utilities. It now links to the appropriate edition. (Bug #17316512, Bug #70049)
  • The Close Other Tabs context-menu option did not close Table Editor tabs. (Bug #17235359, Bug #69850)
  • The innodb_buffer_pool_size and innodb_buffer_pool_instances configuration parameters were duplicated in the Options File (formerly the Server Administration) tab. They were listed in both the Buffer Pool and Memory" groups.
  • Also, using MySQL Workbench to change these settings would generate a change that also altered whitespace in the MySQL configuration file. (Bug #16915510, Bug #69406)
  • Migrating a Microsoft Access database would crash at the Reverse Engineer Selected Schemata step. MySQL Workbench does not support the migration of Microsoft Access, so the migration wizard will now display an error (and halt operation) when attempting to migrate an unsupported database. (Bug #16529142, Bug #67584)
  • After adjusting the width of the Id or Time columns in the connection listing, the integer value was cut off without indication. The value is now shown, or an ellipses (...) is appended. (Bug #16464457, Bug #68593)
  • The Workbench Bug Reporter failed to log in to report a bug, even when using valid credentials. This bug reporting functionality was removed from MySQL Workbench. (Bug #16056820, Bug #14520752, Bug #67990, Bug #66343)
  • The Check for Updates, Submit a Bug Report, and Discuss a Topic MySQL Workbench buttons are now underlined when the mouse cursor hovers over them. (Bug #11758492, Bug #50704)

New in MySQL Workbench 6.0.4.11146 Beta (Jul 25, 2013)

  • Functionality Added or Changed:
  • MySQL Workbench will now detect file edit changes in the SQL editor. For example, you may now open an SQL file in MySQL Workbench, edit the same file in another text editor, and MySQL Workbench will detect the changes and update accordingly. (Bug #16744919, Bug #68950)
  • The tab navigation feature now includes wrapping. Pressing Control + Tab (forward) with the last tab active will move to the first tab, and pressing Control + Shift + Tab (backward) with the first tab active will move to the last tab. (Bug #14096668, Bug #65354)
  • A page header and footer was added to the Print to File... output.
  • A workaround option was to add a text field to the document and add your information there. (Bug #11762619, Bug #55233)
  • Bugs Fixed:
  • In the Model view, the "Accordion" style tabs would disallow scrolling when multiple tabs were open. For example, Physical Schemas would not scroll down to other options like Model Notes. (Bug #17154650, Bug #69635)
  • It was not possible to execute statements with the PROCEDURE ANALYSE statement.
  • A workaround was to remove the generated LIMIT clause. (Bug #17066330, Bug #69687)
  • A new preference was added to toggle casing for the generated keywords in the auto completion list. Edit, Preferences, SQL Editor TAB, Use uppercase keyboards on completion. (Bug #17033597, Bug #69621)
  • On Microsoft Windows, executing a query using the Control + Enter shortcut would cause the cursor focus to be lost. (Bug #16983168, Bug #69505)
  • Clicking "Alter Table" from the schema tables list and changing the engine from the engine drop down would not alter the database after pressing Apply. (Bug #16933119, Bug #69433)
  • The tables drop down was not sorted alphabetically in the schema explorer if a SELECT query was executed on a schema before viewing the tables. (Bug #16784484, Bug #69178)
  • Control + PageDown and Control + PageUp now switch between open SQL Editor connections. (Bug #16687676, Bug #68968)
  • The File/Open SQL Script dialog now defaults to the last used folder during the session. (Bug #16581302, Bug #68822)
  • The Revert option not working for views/routines. (Bug #16284542)
  • The Refresh data from data source option would fail to function with local changes present. A dialog was added to either apply or cancel the local changes before performing the refresh. (Bug #16104127, Bug #68030)
  • The Filter field in the query tab would ignore the last character. (Bug #14636440, Bug #66844)
  • A Rename Diagram... context menu item was added for diagrams in the Model Overview. (Bug #11762737, Bug #55367)

New in MySQL Workbench 6.0.3.11035 Beta (Jul 10, 2013)

  • Bugs Fixed:
  • The ";" separator for passing in multiple values to the replicate-wild-ignore-table option was not parsed correctly, and MySQL Workbench would throw an unhandled exception.
  • When executing an Administration task, such as Manage Security, an "Current Profile Has no WMI enabled" error would be reported for local connections.
  • A workaround was to edit and save the connection, while making edits to the connection was not required.
  • MySQL Workbench prompted for the sudo password when it was not needed.
  • Executing Synchronize Model against two tables that were identical except for the order that the indexes were created, would cause MySQL Workbench to drop and immediately re-add the foreign keys.
  • Attempting to change my.cnf via Server Administration, Option File would generate an error about an invalid sudo password.
  • The checkbox in the bottom left corner of the Model, Model Options dialog box was not labeled. The label is now Use defaults from global settings.
  • On Microsoft Windows 8, a "Handle is not Initialized" exception would be generated after performing a "Find and Replace" in the routine tab that is located in the group routines section.
  • Adding a particularly long string (around 50 characters) to a table comment for a model diagram would cause MySQL Workbench to crash.
  • Creating a stored function or procedure would generate SQL with superfluous CREATE and USE statements.
  • Executing Model, DBDoc, Model Reporting created a memory link. Then after the report was generated, executing File, Export, Export as PNG would fail and report that MySQL Workbench ran out of memory.
  • Changing a column's default value from CURRENT_TIMESTAMP to CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP was not detected.
  • Clicking Apply after only changing a backtick ("`") or space (" ") would not save the results, and instead MySQL Workbench would report "No changes detected."
  • When connected to a database in SQL Development mode after running a query (or using the Edit table data context menu option), left clicking the leftmost column in the result set pane did nothing. The row options are now enabled when clicking the left side column.
  • After creating a table against a MySQL server with lower_case_table_names enabled, the Object Browser would display the new table name as the user entered it, instead of displaying how it was created with lower-case. The lowercase version is now displayed, and the user is notified of the conversion.
  • The Replace & Find feature would insert the replacement text at the cursor location even if the matching text was not found.
  • On Microsoft Windows, an "Index was out of range" exception was thrown after loading the Output tab in the SQL editor.
  • The text editor in the lower bottom half of the snippets tab (inside the scripting shell) would become unavailable (hidden) after dragging the splitter bar all the way down.
  • The **.* object under Model, Schema Privileges, Privileges was missing an icon.
  • An error was emitted while generating a catalog diff report, and differences in catalogs are now successfully reported.
  • The canvas height of the Model Overview container was not calculated properly. The amount of whitespace would increase as the number of objects increased.
  • Right-clicking on an existing diagram in the model editor would display a disabled Cut and Paste option. It was removed.
  • An error dialog is now generated if an invalid column is chosen from the foreign key picker when creating the relationship.
  • When adding a table to form a N:M relationship in a large EER Diagram, the new N:M table was positioned far away from the tables. This third table is now added between the two other tables.
  • The name of a Diagram can now be changed from the diagram tab via Model, Diagram Properties and Size. (Bug #11753099, Bug #44472)

New in MySQL Workbench 6.0.2.10924 Beta (Jun 14, 2013)

  • A new home screen:
  • A new, modernized "Home" screen where major functionality of MySQL Workbench can be accessed, including connections to MySQL servers, modeling, migration, and the command-line utilities.
  • Unified SQL Editor and Administration interface:
  • In the new user interface, the Server Administration functionality (such as start/stop server, managing user accounts etc) is now accessible directly from the SQL Editor interface, located near where the schema information can be browsed and queries executed.
  • Table data search:
  • You can select schemas and/or tables to perform client-side searches for user specified strings and patterns. To access this new search feature, right click select a schema or a table in the left sidebar and select Search Table Data.
  • Context Sensitive help for the SQL Editor:
  • Select a keyword or function in your query and after a delay it will show formatted help information from the MySQL Server (equivalent to using the help command from the command-line MySQL Client).
  • Schema Inspector:
  • New Schema Inspector feature allows you to browse general information from schema objects. For tables, it's also possible to perform maintenance tasks such as ANALYZE, OPTIMIZE, CHECK, and CHECKSUM TABLE. To access the inspector, right-click a schema and select the Schema Inspector.
  • Cascaded DELETE statements generator:
  • You can generate a series of DELETE statements needed to delete a row from that table, which includes rows from other tables that reference it, recursively. The SELECT version allows you to preview what rows would be deleted. Right click a table and select Copy to Clipboard, Delete with References.
  • Table templates:
  • Define templates of tables with commonly used columns, to be used to create new tables in a live connection or in an EER model. In the SQL Editor, choose Create Table Like..., or in Modeling, use the right sidebar.
  • Vertical Text:
  • A Vertical Text output option for queries (equivalent to \G from the command-line Client) was added. To execute, choose Query, Execute Current Statement (Vertical Text Output).
  • Improved Visual Explain
  • Improved Server Status:
  • Additional server status information was added, and the user interface was improved. Select Server Status from the Management tab to open this window.
  • Enterprise Features:
  • Support for MySQL Enterprise features in the Commercial edition of MySQL Workbench was added. From within the Management tab for an open connection, look for the following products under the heading MySQL Enterprise:
  • MySQL Enterprise Backup (MEB): A GUI frontend for the MEB tool. After installing a commercial version of MySQL Workbench and MySQL Enterprise Backup, MySQL Workbench will check for and handle the pre-requisites. Backup recovery is also supported.
  • MySQL Audit Log Inspector: A GUI for browsing the contents of generated logs by the commercial Audit Log Plugin. Powerful filtering and search capabilities are available. Fast browsing is provided by caching the log data locally in an encrypted file.
  • SQL Anywhere and SQLite are now supported.

New in MySQL Workbench 5.2.46 (Feb 5, 2013)

  • Functionality Added or Changed:
  • New role functionality was added. It is now is possible to add schemas.*, tables.*, and *.*, and to assign privileges to each object. Before it was only possible to add individual tables when defining roles. (Bug #11761640, Bug #54153)
  • The auto-completion feature was improved. For example, it now includes the parsing of aliases and subqueries for SELECT statements.
  • Bugs Fixed:
  • Microsoft Windows: In an EER Diagram, the circles at each end of a relationship line were rendered as different sizes. (Bug #12628088, Bug #54663)
  • Refreshing data in the Server Administration panel would reset the sort order, and the sorting order would default back to Connection ID. This could also cause the sorting method to be mislabeled. (Bug #16206194)
  • Closing a table's properties window from within the EER Model diagram window would crash MySQL Workbench. (Bug #16185134, Bug #68101)
  • An SQL syntax error would be reported when a comment was added to an INDEX. (Bug #15991038, Bug #67835)
  • Two preference settings were added for online DDL operations. Listed under Preferences, SQL Queries, under Online DDL, these new settings (Default algorithm for ALTER table and Default lock for ALTER table) set the default values for the Apply Script wizard, or these values may be defined when Apply Script is executed. (Bug #15893626)
  • Functionality (such as Copy to Clipboard) was missing from the right-click context-menu of the Schema browser when multiple columns were selected. (Bug #14834245, Bug #67417)
  • The Show Filter table listing for Export MySQL Table Objects is now sorted alphabetically. (Bug #14706782, Bug #66712)
  • From the EER Diagram window, nearly completing the Database, Synchronize with Any Source wizard, and then pressing Back to the beginning, MySQL Workbench would crash after nearly completing the wizard the second time. (Bug #14611078)
  • The Bulk Data Transfer migration step would fail if too many tables were being migrated, because too many arguments were being passed to the command-line. This table listing is now saved to a new file named wb_tables_to_migrate.txt, which is now read during the migration process. (Bug #14588167, Bug #66611)
  • MySQL Workbench could crash (segmentation fault) at startup if a configuration file was corrupt. (Bug #14622471, Bug #66776)
  • Creating a table in a schema that had a "-" in the schema name would emit an error about an "unknown column", and fail to create the table. (Bug #14632271, Bug #66815)
  • MySQL Workbench could crash after files became corrupted, but now attempts to regenerate the corrupted files. (Bug #14520133, Bug #65630)
  • Sometimes the Create Table... dialog in the Object Browser would emit an error instead of creating the table, after pressing Apply. (Bug #14520406, Bug #66169)
  • Changes to a table that a view referenced would cause an error while attempting to edit the view. This fix allows MySQL Workbench to work around the underlying bug, which is MySQL bug #61718. (Bug #14526308, Bug #66502)
  • The ability to select code in the SQL Editor by clicking on line numbers was restored. (Bug #14483713, Bug #66139)
  • Right-clicking on a tab name did not show the New Tab, Save tab, Close other tabs, and Copy path to clipboard options. (Bug #14171956, Bug #65455)
  • Selecting the server engine default within the Alter Table window would generate an error. (Bug #14076198, Bug #65101)
  • The Model: MySQL, Default Storage Engine preference would not take effect until after MySQL Workbench was restarted. (Bug #13970619, Bug #64928)
  • On Microsoft Windows, holding down Shift with the Spacebar would not enter a space. (Bug #13919870, Bug #64820)
  • Changes to File, Document Properties for a Model were not detected or saved by MySQL Workbench. A Save prompt is now generated. (Bug #13040173)
  • MySQL Workbench would hang when attempting to connect with user accounts that utilized external authentication. (Bug #12896935)
  • The EER diagram Arrange, Center Diagram Content option would hide objects from the diagram. (Bug #12898144)
  • If MySQL Workbench crashed when an EER diagram was being created, after restarting MySQL Workbench the EER diagram would be listed as "unsaved" but would not open. And it could not be deleted from the diagram list. (Bug #12642422, Bug #61444)
  • After selecting multiple objects and choosing delete, then choosing keep when prompted to delete or keep the selected objects, the relationship lines were still deleted. MySQL Workbench now asks if the relationship columns should be deleted or kept. (Bug #12565850, Bug #61113)
  • Under certain circumstances, synchronizing a database to a model would remove the mandatory relationships. (Bug #11834230, Bug #60312)
  • Changes made to a database schema while the Database, Synchronize Model wizard was active, would throw an exception. (Bug #11765036, Bug #57948)
  • Also, all platforms (Linux, Mac OS X, Windows) are now consistent, and will also warn you after attempting to close MySQL Workbench with any unsaved changes. (Bug #11758193, Bug #50363)
  • The Default Schema setting was ignored by the Reverse Engineer Database wizard. (Bug #11757887, Bug #50002)
  • The bundled MySQL Client was updated to version 5.6.10.

New in MySQL Workbench 5.2.45 (Dec 28, 2012)

  • Functionality Added or Changed:
  • Models: Copy, Cut, and Paste options were added to the context menu (right-click) of the Columns list in the models table editor. These options can be used between models. (Bug #13029519, Bug #62503)
  • A Copy Selected button was added to the Server Status panel of the Server Administration window. It copies the query of the selected connection to the clipboard. (Bug #14799336, Bug #66728)
  • The Control + / keyboard shortcut was added to comment/uncomment lines while editing SQL queries. (Bug #14803414, Bug #67002)
  • An Import Recordset from CSV File option was added to the SQL Editor and model insert tabs. This import functionality parses a file with comma-separated values. (Bug #14207773, Bug #65592)
  • Bugs Fixed:
  • Linux: Right-dragging saved connections, models, and MySQL Server instances on the home screen could crash MySQL Workbench. (Bug #14812457)
  • Linux: Executing MySQL Workbench from the command-line would print stdout twice. (Bug #14565095, Bug #66590)
  • Mac OS X: The results window from executing an SQL query could be empty. A workaround was to resize the results window. (Bug #14520361, Bug #66446)
  • Mac OS X: Closing MySQL Workbench after executing and making changes with the Alter Table tool would not prompt the user with the save dialog. (Bug #14456136)
  • Mac OS X: On Mac OS X, the default column name and column type model preferences did not function. Note that this feature does not function on Linux. (Bug #14399236, Bug #66090)
  • Mac OS X: The ability to select multiple columns in the models table editor did not function on Mac OS X. It is now possible to use Shift, Command, and mouse dragging. (Bug #11766291, Bug #59372)
  • Models: Microsoft Windows: After opening and then closing a model file from the file manager, attempts to open a different model file would fail to load the model. (Bug #14791573, Bug #67312)
  • Models: Microsoft Windows: Model files (*.mwb) would not load MySQL Workbench after being double-clicked in Windows Explorer. (Bug #14521111)
  • Microsoft Windows: Pressing Control + A in the table editor on a table field would select all table entities instead of the text in the field. (Bug #15884658, Bug #67610)
  • Microsoft Windows: Clicking on the Schema and Schema Objects column headers within Server Administration, Data Export would properly sort in descending order, but would not sort in ascending order when clicked again. (Bug #15849616, Bug #67518)
  • Microsoft Windows: The Enter key would not create newlines within the table column comment dialogue. (Bug #14829617, Bug #67320)
  • Microsoft Windows: Queries surrounded by parenthesis would not display results in the view tab. (Bug #14651969, Bug #66887)
  • Microsoft Windows: Right-clicking on a database name in the schema browser and choosing Set as Default Schema would add a strikethrough to the chosen database name. (Bug #14663690, Bug #66930)
  • Microsoft Windows: The Explain button would not display the results in the Explain tab. (Bug #14702591, Bug #67059)
  • Microsoft Windows: The Id and Time columns within the Server Administration, Server Status, Connections panel would not sort properly, as they were sorted as ASCII values instead of numerically. (Bug #14612413, Bug #66768)
  • Microsoft Windows: A model would fail to load when opened from the Microsoft Windows 7 taskbar if a different model was already open. (Bug #14621880, Bug #66799)
  • Microsoft Windows: Control + H did not invoke the replacement function. (Bug #14520920, Bug #66422)
  • Microsoft Windows: After using the schema search filter in the object browser, right-clicking on a filtered schema would generate a context menu with invalid options. (Bug #14521006, Bug #66346)
  • Microsoft Windows: Find and Replace would not function properly while using '_' as a replacement character. (Bug #14499088, Bug #66390)
  • Microsoft Windows: The Explain Current Statement option would not function. A workaround is to manually prepend EXPLAIN to your query. (Bug #14483518, Bug #66157)
  • Microsoft Windows: Control + A would not always select data from cells in the query results tab. (Bug #13891109, Bug #64723)
  • Microsoft Windows: The default plugin directory in the configuration tab was set as a Linux style path such as "/usr/", but it is now based on the OS aware BASEDIR value. (Bug #11764440, Bug #57271)
  • MySQL Server 5.6: The SHA-256 Authentication Plugin is now supported. (Bug #14786561, Bug #67155)
  • MySQL Server 5.6: MySQL Workbench would alter the mysql.* system tables for tasks such as account management, instead of using the corresponding account manipulation statements. This would conflict with GTID usage as of MySQL Server 5.6. (Bug #14786531, Bug #67150)
  • MySQL Server 5.6: The MySQL 5.6 ALTER USER ... PASSWORD EXPIRE option is now supported. An expired password indicator, and an Expire Password button to expire the current password, were added. (Bug #14786564, Bug #67157)
  • MySQL Server 5.6: MySQL Workbench now supports MySQL Server 5.6 configuration options. (Bug #14786556, Bug #67153)
  • MySQL Server 5.6: The SQL Editor would emit invalid syntax errors with MySQL 5.6 queries. For example, GET DIAGNOSTICS queries would return "syntax error, unexpected IDENT_QUOTED, expecting ':'". (Bug #14786599, Bug #14786604, Bug #14786615, Bug #67163, Bug #67164, Bug #67168)
  • MySQL Server 5.6: MySQL Workbench would not allow passwords to be created or changed for user accounts that utilize the SHA-256 Authentication Plugin, which exists as of MySQL Server 5.6.6. (Bug #14786567, Bug #14786558, Bug #67158, Bug #67154)
  • MySQL Server 5.6: The partition count definition was limited to 1-10 as a drop-down selector in MySQL Workbench. This option is now a text field, which accommodates the 8192 partition limit in MySQL Server 5.6. (Bug #14786614, Bug #67166)
  • MySQL Server 5.6: A DDL related parsing error would be generated while attempting to update an existing routine that contained a DateTime variable type with precision. This feature is specific to MySQL Server 5.6. (Bug #14684874, Bug #14545075)
  • MySQL Server 5.6: Creating a standard user with MySQL Server 5.6 would sometimes fail, and emit an error that referred to an unknown mysql_native_password plugin. (Bug #14574998, Bug #66638)
  • MySQL Server 5.6: The MySQL Workbench UI now supports the extended TIMESTAMP and DATETIME features that MySQL Server 5.6 offers. Both the initial and on-update values can now be defined for these types, and the fractional-second granularity is also now supported. (Bug #67165, Bug #67169, Bug #14786605, Bug #14786616)
  • MySQL Server 5.6: All MySQL Server 5.6 system variables were listed under the Other tab instead of their proper location. For example, gtid_done is now listed under the Replication tab. (Bug #67170, Bug #14786569)
  • MySQL Server 5.6: Creating a standard MySQL Server 5.6 user account in MySQL Workbench would fail, and emit an error related to the msyql_native_auth plugin. (Bug #67151, Bug #14786542)
  • MySQL Server 5.6: The creation of a username and password will now utilize the Password Validation Plugin in MySQL 5.6. This option is available within the Server Administration section, under the Security Options tab. (Bug #67152, Bug #67161, Bug #14786551, Bug #14786626)
  • Migration: Migrating a Microsoft SQL Server database would fail if nvarchar(max) was used. These are now converted to LONGTEXT. (Bug #14780416, Bug #67289)
  • Migration: From within the Manual Editing section of the database migration procedure, viewing Migration Problems after All Objects would continue to display information from All Objects. (Bug #14761792, Bug #67229)
  • Migration: Migrating from MySQL Server 5.0 to MySQL Server 5.6 could fail. The migration tool now supports MySQL Server 4.1 and above as the source database. MySQL Server 5.1 and above are supported as the target database. (Bug #14647426, Bug #66861)
  • Models: Switching from a table column tab to a different tab, and then back to the column tab, would add an empty column named "tablenamecol". This empty column would be added to the table unless Escape was pressed. (Bug #14768685, Bug #67235)
  • Models: Model notes could not be saved. The Apply Changes button is available again. (Bug #14813462, Bug #67211)
  • Models: Synchronizing a model with a database could crash MySQL Workbench by causing a segmentation fault. (Bug #14588524, Bug #66707)
  • Models: While executing the Synchronize Model with Database wizard, invalid trigger related errors could be emitted even though the definitions were correct. (Bug #14498358, Bug #65982)
  • Models: Forward Engineering a model with users and roles could generate invalid SQL, because the username was not escaped within the generated GRANT statements. (Bug #14396930, Bug #66070)
  • Models: The File, Import, Import DBDesigner4 Model feature would fail to function. (Bug #13548113, Bug #63878)
  • Models: Sometimes a modified stored procedure would not be flagged as modified while synchronizing a model. (Bug #13364922, Bug #62595)
  • Models: The ability to open model files from older versions of MySQL Workbench has been improved. (Bug #12747012, Bug #61703)
  • Models: Pressing Cancel in either the Create EER Model from Existing Database or Create EER Model from SQL Script dialogs would still open a Model tab. (Bug #11757140, Bug #49145)
  • Models: When editing an EER diagram, the Cut context menu option follows Delete behavior by also deleting the schema object. It will now only remove it from the EER canvas. And a new Remove option was added that also only removes an object from the EER canvas. (Bug #11761492, Bug #53994)
  • Saving script files did not function properly with the clipboard. Content pasted from the clipboard was not saved. (Bug #15837775, Bug #67462)
  • Clearing the output window while a query was running could cause MySQL Workbench to crash after the query finished. (Bug #15891884, Bug #67618)
  • Having sql_mode set to PAD_CHAR_TO_FULL_LENGTH causes the routine functionality to fail, as MySQL Workbench is not designed for this setting. A connection specific sql_mode option was added, and it can be set from the Advanced tab in the Connection Editor. It defaults to "". (Bug #14845656)
  • The following scenario would crash workbench: open a table, insert a new row of data, close the table, open a different table via double-click, then press Save Changes. (Bug #14829570, Bug #67237)
  • Added DbMySQLQuery->affectedRows, fixed MySQLResult->firstRow, and added a Splitter control to the Python binding for mforms. (Bug #14799403, Bug #66804)
  • MySQL Workbench would fail to interpret C-style comments, such as /*! MySQL-specific code */. For more information about comment usage in MySQL, see Comment Syntax. (Bug #14807602, Bug #67203)
  • Opening a connection using Open connection to Start Querying from the MySQL Workbench home screen could crash MySQL Workbench. (Bug #14803527, Bug #67074)
  • Procedures were always included in the exported SQL, even if excluded via a filter or configuration setting. (Bug #14758896, Bug #66790)
  • The Select Objects to Forward Engineer filter was ignored while executing Forward Engineer to Database. All tables were exported. (Bug #14696609, Bug #67031)
  • A model could not be synchronized if a field contained a comment with a single quote. (Bug #14582241, Bug #66680)
  • A crash could occur after switching tables in the EER Diagram tab while the Privileges was open, or while adding roles to the active table. (Bug #14645542, Bug #66869)
  • In the MySQL Workbench Scripting Shell, an exception is now thrown while attempting to use input() or read from stdin. (Bug #14520741, Bug #66452)
  • The non-functional comments box was removed from the schema editor. (Bug #14548126, Bug #66553)
  • An exception would be generated when executing Forward Engineer without a MySQL Server connection. (Bug #14574987, Bug #66648)
  • Lower level changes, such as a newly created TRIGGER, would not be visible after the object browser was refreshed. (Bug #14551801, Bug #66549)
  • The mouse scroll would not function while viewing the Options File in the Server Administration panel. (Bug #14388344)
  • Unlike the Server Administration panel (since 5.2.35), the SQL Editor did not support syntax that utilized the authentication plugins. (Bug #14356470)
  • The Server Access Management interface would not allow a password to be set as an empty string. (Bug #14278189, Bug #65739)
  • The Limit Connectivity to Hosts Matching option did not allow an IP with a Subnet Mask because "/" was considered an invalid character. (Bug #14207793, Bug #65583)
  • Having multiple connections with TCP/IP over SSH could cause MySQL Workbench to not connect when exceeding MaxAuthTries. This may happen if an encryption type is unknown. The bundled paramiko library (on Mac OS X, and Windows) was updated to version 1.7.7.1, which helps solve this problem, as it adds known support for OpenSSL keys. (Bug #13919914, Bug #64802)
  • Multiple instances of MySQL Workbench will no longer open the same database model file. Doing so caused problems with features such as auto save and file locking. (Bug #13864687, Bug #64639)
  • An SSL connection required a client certificate. (Bug #13851229, Bug #61266)
  • A new General, SQL Editor option was added. Enabling Create new tabs as Query tabs instead of File (disabled by default) causes new SQL Editor tabs to default as Query tabs instead of SQL File tabs. File tabs include additional options, and prompt to be saved when the tab closed. (Bug #13492434, Bug #14541178, Bug #62929, Bug #66541)
  • Changing a foreign key column to be nullable now deselects the mandatory checkbox. If all foreign key columns are set to NOT NULL, then the mandatory checkbox value will be selected. (Bug #13252655, Bug #62737)
  • The Start Command Line Client feature would fail to connect with SSH connections. (Bug #12612343, Bug #61325)
  • A Refresh Rate option was added to the Server Administration, Server Status window. The refresh rate defaults to "Don't Refresh" and includes options ranging from 0.5 to 30 seconds. (Bug #11926869, Bug #60546)
  • It was not possible to sort schemas for exporting. (Bug #11926862, Bug #60566)
  • Changes to the DEFINER clause were not detected by the Alter Table wizard when altering this clause was the only change. (Bug #11829867, Bug #60164)
  • When foreign keys are added, existing indexes are now used instead of always creating new indexes. (Bug #11760834, Bug #53277)
  • Attempting to open MySQL Doc Library while it was already opened would generate an error. (Bug #11763691, Bug #56432)
  • The ALTER ROUTINE functionality would not detect stored procedure changes when only the case changed. This check was case-insensitive. (Bug #65277, Bug #14136994)

New in MySQL Workbench 5.2.44 (Sep 29, 2012)

  • Functionality Added or Changed:
  • Updated the bundled MySQL Utilities to version 1.1.0, which includes the new mysqluc console.
  • Added native migration support for PostgreSQL and Sybase ASE.
  • Bugs Fixed:
  • After right-clicking on a non-empty field in the SQL editor, and choosing Copy Row Content, pasting the row into an empty row (by right-clicking and choosing Paste Row) would not increment the row id when it was appropriate to do so. (Bug #14587186, Bug #66668)
  • When a table from Microsoft SQL Server was migrated to MySQL, TEXT columns were mapped to VARCHAR(16). They are now mapped to LONGTEXT because Microsoft SQL Server TEXT columns have a maximum length of 2^31 - 1. (Bug #14556732, Bug #66584)
  • The MySQL Workbench Data Export feature would fail to recognize tables that contained accented characters in the table's name. (Bug #14504342, Bug #66421)
  • The object browser would not update the column order after a table was altered. (Bug #14495629, Bug #66232)
  • On Mac OS X systems with the Retina display, the mouse cursor would register incorrect mouse coordinates. (Bug #14396939, Bug #65607)
  • Entering the caret ("^") character inside the SQL editor, followed by any other character, could cause MySQL Workbench to hang. This was a Scintilla bug that is now fixed. (Bug #13930994, Bug #64848)
  • After choosing Alter Table, pressing Apply would cause MySQL Workbench to display "Preparing..." in the output panel, but it now displays "No changes detected." (Bug #13497239, Bug #63604)
  • When synchronizing a model to a database after changing a field definition from NOT NULL DEFAULT x to NULL DEFAULT NULL, the model synchronization would correctly generate the SQL. But after executing this SQL and resynchronizing, MySQL Workbench

New in MySQL Workbench 5.2.43 (Sep 14, 2012)

  • Functionality Added or Changed
  • The default object/relationship notation for new models will now be taken from the last notation selected by the user. This is chosen via Model, Relationship Notation. (Bug #49997, Bug #11757883)
  • Bugs Fixed
  • It was possible for a custom plugin to cause MySQL Workbench to crash. (Bug #14595613, Bug #65817)
  • After editing and closing an EER diagram, double-clicking on one of the diagram tables could generate an exception. (Bug #14587490, Bug #66699)
  • Dropping multiple objects at the same time was not possible. Selecting multiple objects, right-clicking on one of the selected objects, and then choosing the Drop n Object option would generate SQL that deleted only one of the selected objects. (Bug #14538863)
  • A semicolon at the end of a single lined SQL comment would be treated as a delimiter, and cause the SQL query to not execute. (Bug #14529811, Bug #66505)
  • Clicking Browse after the Target Creation Options stage of the database migration wizard would generate an error. (Bug #14520838, Bug #66271)
  • Passing in the -nologo argument while starting MySQL Workbench would cause a crash. (Bug #14527014)
  • Right-clicking and choosing Edit Table Data while multiple schemas are selected could cause the activity animation icon to remain active and/or crash MySQL Workbench. (Bug #14524139, Bug #66022)
  • Migrating a Microsoft SQL Server table that contained both NULL and non-null values in a DATETIME column would fail to import properly. (Bug #14509484, Bug #66359)
  • Right-clicking on a table and selecting Copy Insert Statement would generate SQL with the columns sorted in alphabetical order. The SQL is now generated in the order listed in the database. (Bug #14508845, Bug #66419)
  • With the Slovenian keyboard layout chosen, pressing Control + / would not toggle commenting. (Bug #14504877, Bug #66131)
  • Synchronizing a restored EER model with the Model and Database Differences, Update Model Only configuration option enabled for all tables would cause MySQL Workbench to crash. (Bug #14510962, Bug #66436)
  • Migrating from a remote SQL Server 2008 database to a local MySQL database would fail at the Fetch Schemata List stage of the database migration wizard, as it was unable to connect to the source database. (Bug #14498549, Bug #66030)
  • On Fedora 17, autoconf would not detect the altlr which is antlr3-C version 3.4. (Bug #14495924, Bug #66325)
  • Synchronizing a model could crash if the model had an invalid foreign key. (Bug #14498436, Bug #66020)
  • The database export feature would not always export the correct databases if some database names were clicked while others checked the selection checkbox. This feature now only takes into account the checkboxes. (Bug #14495660, Bug #66376)
  • Under certain conditions, synchronizing a model would generate SQL statements that dropped a schema before altering it. (Bug #14495165, Bug #66083)
  • The object browser did not display foreign keys. A workaround was to view them via the Alter Table interface. (Bug #14483668, Bug #66226)
  • Objects in the schema tree, such as tables, were not listed alphabetically after edits were made. (Bug #14483610, Bug #66209)
  • Selecting a view in the object browser would sometimes insert the view into the table listing. (Bug #14483526, Bug #66158)
  • On Microsoft Windows, MySQL Workbench would crash after attempting to export a model as a PNG, SVN, or PDF. (Bug #14483735, Bug #66298)
  • The Select Schemata step of the Reverse Engineer Database wizard would not display the underscore character correctly. Instead it would appear as an underline to the next character. (Bug #14467930, Bug #66248)
  • On a table with a multiple field foreign key, attempts to remove one of these fields would fail. The associated checkboxes can now be used with success. (Bug #14415483, Bug #66171)
  • Expanding a view object from within the schema viewer would immediately collapse, and it would only expand with subsequent attempts. (Bug #14404189)
  • On Microsoft Windows, the behavior of Control + Enter was changed back to the previous behavior, which is to execute the statement that contains the cursor, instead of the last statement in the SQL editor, or the current statement if the cursor is at the beginning. (Bug #14396992, Bug #66025)
  • After exporting a schema, and unselecting the schema, exporting a new schema would export both the current and previously exported schema. (Bug #14388355)
  • A warning message was added when a user attempts to delete an index that belongs to a foreign key. (Bug #14359329, Bug #65972)
  • The default database while applying changes to users and privileges is now set to mysql. (Bug #14359266, Bug #65959)
  • Exporting a table that contained views could fail to export. (Bug #14359349, Bug #65780)
  • The --enable-maintainer-mode autoconf option was not available. (Bug #14329365, Bug #65900)
  • MySQL Workbench could execute queries from the wrong tab after tabs were moved (reordered). (Bug #14221754, Bug #65557)
  • The vertical scrollbar in the table definition window would appear incorrect after clicking a NN (Not Null) checkbox on one of the column definitions. (Bug #14221022, Bug #65500)
  • Choosing the Edit in New Window context menu on a routine would not open a new window. (Bug #14171776, Bug #65520)
  • Executing from mysql.utilities.parser import GeneralQueryLog from within the MySQL Workbench scripting shell would result in an error. (Bug #14128312)
  • The MySQL Export wizard would not escape hardcoded newlines in the generated SQL, but they are now escaped. For example, a \n now remains as \n in the exported query, when before it was expanded. (Bug #14124914, Bug #65222)
  • Exported "Excel Spreadsheet" files were exported with the ".xls" extension, instead of the ".xml" extension. (Bug #13970552, Bug #64955)
  • MySQL Workbench was unable to edit the lc_time_names variable. (Bug #13939985, Bug #64880)
  • Under certain conditions, MySQL Workbench would generate invalid SQL when dealing with foreign keys. (Bug #13865784, Bug #14486006, Bug #64601, Bug #66285)
  • While editing a model, right-clicking on a user and choosing Copy SQL to Clipboard would not not function. (Bug #13742855)
  • After setting an EER diagram marker, modifying the zoom, and then setting a marker, the markers would not be created. (Bug #13742896)
  • WB_FORCE_SYSTEM_COLORS=1. This is useful for certain conditions, like when using the HighContrastInverse or GnomishDark system themes. (Bug #13608244, Bug #64013)
  • MySQL Workbench would yield incorrect results while displaying results from the MAX function on a bit field. (Bug #13496747, Bug #63457)
  • Table data could not be edited if the primary key was a binary field. (Bug #13418610, Bug #63198)
  • Multiple objects would remain selected after adding a new table within the Create new EER Model wizard. (Bug #12933282)
  • The Forward Engineering wizard did not utilize the Use Default Schema setting that is set in the Manage Connections configuration table. (Bug #12757331, Bug #61786)
  • Deleting a connection would not immediately delete the connection from MySQL Workbench. (Bug #12642474, Bug #61445)
  • Passwords are now removed if they are no longer used by other connections when a particular connection is deleted. (Bug #12627613, Bug #61322)
  • The Treat BINARY/VARBINARY as nonbinary character string preference for SQL Queries did not function. (Bug #12612409)
  • The error icon would continue to be displayed in the SQL editor after deleting a character to create the error, and then adding it back. This only affected multiline SQL statements. (Bug #11763319, Bug #56015)
  • When a routine contained CONCAT with a number as an argument, MySQL Workbench would return it as a BLOB. (Bug #11763872, Bug #56642)
  • MySQL Workbench would not export data when using a remote server connection through SSL with certificates. (Bug #11766196, Bug #59249)
  • The Tab key would not navigate field values in the Set remote configuration parameters dialogue of the Server Administration panel. (Bug #11757375, Bug #49413)
  • Closing MySQL Workbench while an unsaved model was open would prompt the user with a "MySQL Workbench has stopped working" error, with a Close button. MySQL Workbench now prompts to either save or close. (Bug #61802, Bug #12912241)
  • While using the Forward Engineer wizard, any change detected in a connection option now clears the "Stored connection" field. (Bug #49921, Bug #11757818)

New in MySQL Workbench 5.2.42 (Aug 14, 2012)

  • Bugs Fixed:
  • There was a typographical error in the "Rename" dialogue that prompts a user to rename unsupported foreign key names that originate from old model files. (Bug #14399185, Bug #66113)
  • The Reformat DDL for Views configuration option would generate invalid SQL syntax if the expression contained an even number of parts that were very long. (Bug #14396953, Bug #66068)
  • The Search on server button would create an additional Search on server button each time it was pressed. (Bug #14395153)
  • After upgrading to MySQL Workbench 5.2.41, MySQL Workbench would freeze if the initial load involved a connection without a saved password. (Bug #14383570, Bug #66016)
  • Data modeling would not allow table edits, and repeated attempts to do so would crash MySQL Workbench. (Bug #14374169, Bug #66013)
  • A signal statement in a stored procedure was not supported, and would report a syntax error. (Bug #11763874, Bug #56644)
  • Using \func would prevent the Apply changes to data option to function, and instead "Pending changes" error message windows would be displayed. (Bug #62061, Bug #12844298)
  • On Ubuntu 12.04 64-bit, MySQL Workbench could freeze. (Bug #65331, Bug #14120708)
  • Expanding the tree view for a database with a large number of tables (tested 30,000) would crash MySQL Workbench. (Bug #66036, Bug #14383521)
  • In the SQL Editor, the cursor would inappropriately flash. This was fixed while moving to the native Scintilla control. (Bug #61752, Bug #12757202)

New in MySQL Workbench 5.2.41 (Jul 28, 2012)

  • Functionality Added or Changed:
  • Added a new Data Import/Restore option to select the default schema to import to, and a button to create a new schema in case a dump is being imported from a single file. (Bug #13539030, Bug #63853)
  • A Global Privileges tab was added to the Server Administration interface. It allows adding and editing individual global user privileges. (Bug #11761628, Bug #54141)
  • A word wrapping option was added to the SQL Editor. (Bug #11765583, Bug #58566)
  • The Diagram object tooltip now displays the column comments. (Bug #11765060, Bug #57977)
  • Basic code completion functionality has been implemented. (Bug #11760500, Bug #13813099, Bug #52917, Bug #64525)
  • The model wizards now remember the last connection that was added. (Bug #56515, Bug #11763761)
  • MySQL Workbench added a migration wizard, which will migrate ODBC compliant databases to MySQL. (Bug #54731, Bug #11762168)
  • Bugs Fixed:
  • On Microsoft Windows 64-bit, closing MySQL Workbench from within the SQL editor could cause a crash. (Bug #14307316)
  • A snippets file could not be created. (Bug #14278287, Bug #65734)
  • It is now possible to select a range of rows using the shift key. And on Mac OS X, the command key will now allow the selection of individual rows (Bug #14177386, Bug #65569)
  • Comments and collation controls are now disabled until a column in the column editor is selected. Before it was always available, so invalid entries would attempt to be created, which would result in an error. (Bug #14177412, Bug #65574)
  • An orphaned privileges tab would be shown in the table editor when switching tables. Now only the current privilege tab is displayed. (Bug #14102537, Bug #65182)
  • The Edit, Find, Find and Replace operation was slow. (Bug #14079480, Bug #65262)
  • MySQL Workbench would not load with Ubuntu 11.10. (Bug #14058886, Bug #63626)
  • Having a schema without a name in a model would cause MySQL Workbench to crash. (Bug #14017357, Bug #65119)
  • Using the '%' character within environment variables could cause MySQL Workbench to crash. (Bug #13989371, Bug #65056)
  • MySQL Workbench would fail to compile with automake 1.11.2 or greater, due to the pkglib_DATA reference. (Bug #13972001, Bug #63898)
  • The SQL Beautifier feature would remove DISTINCT from inner queries. (Bug #13970596, Bug #64932)
  • Creating and then synchronizing a table in a model with a DOUBLE typed column would generate invalid SQL, thus generating an "Invalid SQL syntax" error. (Bug #13970484, Bug #64990)
  • MySQL Workbench would crash while multiple model routines were opened. (Bug #13970497)
  • The SQL Beautifier would delete WITH ROLLUP if it was contained within a subquery. (Bug #13919924, Bug #64796)
  • The Replace All option would not function when the replacement string was empty. (Bug #13919875, Bug #64818)
  • Passing a grt.classes.db_query_EditableResultset object to getattr() could cause a crash. (Bug #13893388, Bug #64777)
  • A new Copy Row (tab separated) option was added to the result set context menu within the SQL editor. A comma separated variant of this option already existed. (Bug #13884753, Bug #64724)
  • Certain conditions would cause privilege related problems and emit errors such as "Incorrect Value Entered" when creating a table in one tab, altering it in another, then going back to the original tab. (Bug #13877873, Bug #64591)
  • Internal log tables are now excluded while exporting a the MySQL database. The excluded tables are mysql.schema, mysql.apply_status, mysql.general_log, and mysql.slow_log. (Bug #13837725)
  • Using Paste Row after Copy Row Data within the SQL editor would insert rows with extra apostrophes. For example, 'hello' would become ''hello''. (Bug #13840070, Bug #64630)
  • Inputting invalid SQL would remain designated as such, even after the SQL was corrected. (Bug #13820997, Bug #64481)
  • Closing an SQL Editor tab that had a Find/Replace dialog box open, then subsequently closing the Find/Replace dialog box would crash MySQL Workbench. (Bug #13816167, Bug #64569)
  • Input elements are now correctly disabled until an editable row in the column editor is selected. Therefore, invalid values are no longer set in the model. (Bug #13812811, Bug #64550)
  • Changing the Default Collation of a schema after changing its name would reset the schema name to "new_schema". (Bug #13799456, Bug #64259)
  • The Edit table data SQL editor option would not properly display or save Unicode characters. (Bug #13790645, Bug #64447)
  • All editor tabs now prompt to save data when these tabs are closed. Before, only the main tabs (like the SQL Editor) would prompt for to save. (Bug #13788071, Bug #64462)
  • The Match Case search option did not function. (Bug #13790397)
  • Opening the Scripting Shell window, followed by selecting then closing the snippet tab, would cause MySQL Workbench to crash. (Bug #13744364)
  • If Plugins, Utilities, Indent Selected Lines is used while a row is selected, then MySQL Workbench would delete the selected row. (Bug #13744346)
  • Added version dependent keyword list support for syntax highlighting. Supports MySQL Server 5.0, 5.1, 5.5, and 5.6 (Bug #13699804)
  • Quickly executing the same query multiple times would cause MySQL Workbench to use an excessive amount of memory and CPU. (Bug #13642999, Bug #64077)
  • The Model, Model Options, Diagram, Hide Captions option could not be altered (disabled) and would remain checked (enabled). (Bug #13571857, Bug #63937)
  • MySQL Workbench would allow the creation of multiple foreign keys across multiple tables but with the same foreign key name. Synchronization would then emit a "Can't create table" error. (Bug #13548236, Bug #13500447, Bug #63642, Bug #62960)
  • The Object Browser now manages procedures and functions separately, when before they could not co-exist with the same name. They remain under the routines group but have separate icons and menu options. (Bug #13548213, Bug #13730415, Bug #63849)
  • After right-clicking on a value in the SQL editor and choosing Open Value in Viewer, selecting the text would insert extra new lines into the clipboard. (Bug #13538942, Bug #63753)
  • The Server Administration, Server logs, General Log Table option would not function, and only show a Try again button. (Bug #13530413)
  • While editing in the Edit Table tab, Control + A would also select diagram objects. (Bug #13519852, Bug #63758)
  • A "Removed corrupt column definition for Foreign key" error would sometimes be emitted while editing a table with foreign keys. (Bug #13519797, Bug #63772)
  • OpenGL determination at startup has been disabled, and instead this check is performed while creating diagrams. The system could fail at startup, so now MySQL Workbench avoids this startup trouble and can better fall back to software rendering if necessary.
  • MySQL Workbench would also silently fail to load if "Microsoft Visual C++ 2010 Redistributable Package" was not available. This is now checked and reported to the user. (Bug #13512714, Bug #61969)
  • The Open Value in Editor SQL editor option did not work with INT or NULL values. (Bug #13492493, Bug #62934)
  • Plugins, Utilities, Execute query would freeze MySQL Workbench if the query resulted in 1000 or more rows. (Bug #13470781)
  • The info and session tabs within the MySQL connection interface would not display any information. (Bug #13466537)
  • The Move to a group context option for database connections would cause saved connections below the target connection (that is being added to a group) to disappear. (Bug #13470318)
  • The Options tab within the SQL Editor would always display an empty AUTO_INCREMENT value for tables using InnoDB. (Bug #13463458, Bug #63464)
  • After making changes to a model, then closing the window, clicking Cancel on the unsaved changes warning/dialogue would close MySQL Workbench. Now the model window remains open. (Bug #13463465, Bug #63460)
  • After synchronizing a database, refreshing a model would not refresh the stored procedure information. (Bug #13418563, Bug #62879)
  • A query such as "SELECT * FROM SomeTable PROCEDURE analyse()" would only work if "limit rows" was disabled in the preferences. The MySQL Workbench query parsing has been extended to support this type of query. (Bug #13344686, Bug #62964)
  • The MySQL Workbench bug reporting form (MySQL Bugs: Report) did not allow pasting content into the form. (Bug #13344751, Bug #62928)
  • "MariaDB" has been change to "Aria" within MySQL Workbench. (Bug #13252479, Bug #62903)
  • Routine groups on the diagram was not updated after adding new routines to the group. (Bug #13029520, Bug #62496)
  • Right-clicking on Catalog tree within the Model, Diagram context would display an empty line. (Bug #13025389)
  • MySQL Workbench would crash after clicking EER links and options multiple times. (Bug #13024949)
  • Clicking between routines with different comments would not update the description editor with information from the selected object. (Bug #13025359)
  • The Connection Method option within the Edit Table Data window was partially hidden. (Bug #13025670)
  • Detection of a connection to the local machine based on the IP address has been removed. There is now a selection between localhost, remote host, and db host on the initial New Server Instance page. Selecting localhost will let the wizard know that it is local, as otherwise the full path is now required, which for example allows 127.0.0.1 to be used as a remote host to support port forwarding. (Bug #12890503, Bug #62119)
  • The sorting options within the Inserts Editor window did not function. (Bug #12884134)
  • The View, Home option did not function. (Bug #12879850)
  • User Defined Types (UDT) could not be deleted when they were not referenced elsewhere. (Bug #12671629, Bug #61530)
  • The MySQL Workbench window can now be resized to 1024x710. (Bug #12632406, Bug #60762)
  • A confirmation dialog was added that warns users about attempts to edit stub tables, and it describes why these will be ignored by both synchronization and forward engineering. The dialog includes an option to either keep editing it as stub object, or to clear the stub flag and make the table appear in generated SQL. (Bug #12616360, Bug #61309)
  • The synchronization wizard now allows the possibility to force synchronization of schemas that are thought to have been renamed. Otherwise, MySQL Workbench will recreate the schema from scratch. (Bug #12565644, Bug #61211)
  • The EER Diagram zoom feature would not function. (Bug #12346981, Bug #60807)
  • The Partitions tab within the Alter table context menu would not show all of the available partitions. (Bug #11933015, Bug #60235)
  • MySQL Workbench would not allow a user to delete a saved server instance that contained an incorrect password. This incorrect password can now be deleted. (Bug #11765337, Bug #58295)
  • The Synchronize Model operation would use an excessive amount of memory. (Bug #11762726, Bug #55355)
  • MySQL Workbench would freeze while attempting to search and replace with a large number of strings, such as over 100,000. (Bug #11762890, Bug #55539)
  • A new Model: MySQL preference was added for Forward Engineering and Synchronization to configure SQL_MODE. (Bug #11761659, Bug #54173)
  • The Synchronization wizard has been changed to allow forcing synchronization of schemas that have the same name but an unexpected "last known name", which would cause a confusing scenario of the target database being recreated from scratch. (Bug #11756969, Bug #48962)
  • The Copy Column Names to Clipboard option could crash MySQL Workbench. (Bug #64881, Bug #13970600)
  • The zoom feature (in or out) could cause a fatal error. (Bug #65247, Bug #14136870)
  • On Microsoft Windows, MySQL Workbench would ignore the system's font setting, but now uses it when MySQL Workbench is initialized. (Bug #62105, Bug #12872840)
  • On Ubuntu 12.04, MySQL Workbench would not load. (Bug #64956, Bug #14180754)
  • MySQL Workbench would sometimes repeat a warning during a successful action that followed the action with the warning. (Bug #62454, Bug #13014873)
  • Deleting an EER diagram would cause MySQL Workbench to hang. (Bug #65174, Bug #14102990)
  • While editing an EER diagram, and click-dragging the mouse cursor, the cursor now remains in the same place it was originally clicked. (Bug #64487, Bug #13813199)
  • New or updated trigger content would disappear from the SQL Editor GUI, as it was required to reopen the table editor to see the changes. (Bug #65411, Bug #14137775)
  • If a view contains a row that is too long to be represented as a table column, it will now be substituted with an alias column in a placeholder table, similar to how mysqldump behaves. Before it could generate invalid SQL, and fail to synchronize the model. (Bug #63807, Bug #13538955)
  • Using File, Export, Forward Engineer SQL CREATE Script would remove delimiters statements if the Omit Schema Qualifier in Object Names option was selected. (Bug #63742, Bug #13520528)
  • MySQL Workbench now uses the MySQL Server limit for maximum comment lengths while using the forward engineering wizard. Before it would truncate comments to 60 characters, which was a MySQL Server limit before version 5.5.3.
  • From the MySQL Server 5.5.3 changelog: the maximum length of table comments was extended from 60 to 2048 characters. The maximum length of column comments was extended from 255 to 1024 characters. Index definitions now can include a comment of up to 1024 characters. (Bug #62207, Bug #12904170)
  • Adding a trigger with the Alter Table, Trigger interface now warns the user if the inputted trigger statement was invalid. Before, MySQL Workbench would output "No changes to object were detected." if the SQL was valid, but without a CREATE TRIGGER statement. (Bug #61712, Bug #12908810)
  • When altering a table with uppercase letters in the table name, MySQL Workbench would automatically convert the table name to lowercase. (Bug #64072, Bug #13639292)
  • MySQL Workbench now respects case-sensitivity when lower_case_table_names = 2. (Bug #60618, Bug #11926851)
  • Closing MySQL Workbench while editing SQL Scripts will now prompt the user to save the edits. (Bug #61037, Bug #62959, Bug #12546710, Bug #13344705)
  • Loading large files (over 100MB) using File, Open SQL Script... would fail to load the script, and throw an out of memory exception while halting operation.
  • Now, MySQL Workbench warns users if a file exceeding 100MB is attempted to be loaded, and no longer crashes when running out of memory but instead reports that the file was unable to be loaded. (Bug #55312, Bug #60780, Bug #61363, Bug #64186, Bug #11762687, Bug #12339717, Bug #12627645, Bug #13790375)
  • Synchronizing a model would drop, and then re-add, indexes and foreign keys if the order of these indexes and foreign keys were different. This could happen because MySQL Workbench would add UNIQUE indexes in the order added by the user, whereas the MySQL Server puts them first. (Bug #60230, Bug #11829807)

New in MySQL Workbench 5.2.40 (May 15, 2012)

  • Functionality Added or Changed:
  • The SQL editor tab now displays the selected database in the header. (Bug #50932, Bug #11758694)
  • The File, Export, Forward Engineer SQL ... wizards now have the option to use the same configuration settings from the last time Forward Engineer SQL ... was used. (Bug #34977, Bug #11748058)
  • Bugs Fixed:
  • Within the SQL Editor, MySQL Workbench would freeze after choosing Replace All when the find field was empty. (Bug #13744385)
  • MySQL Workbench would generate invalid SQL while using the Partitioning tab when altering a table. (Bug #64396, Bug #13788180)
  • The Data Export option would not use the current date in the folder name containing the exported data. (Bug #63893, Bug #13571760)
  • Database, Synchronize Model would not update the view after a new field was added. (Bug #62569, Bug #13051152)
  • On Microsoft Windows, the MySQL Workbench installer would sometimes not detect where VISUAL C++ 2010 was installed.
  • A workaround is to append CPP_100_RUNTIMES to the eCustomProperties property in the .msi file. (Bug #62141, Bug #12872805)
  • After a connection has timed out, clicking Reconnect to DBMS would freeze MySQL Workbench. (Bug #64467, Bug #13840041)
  • On Mac OS X, expanding the schema for a remote database from within the SQL Editor tab would crash, if the SQL editor tab was closed before the tables were done being fetched. (Bug #63589, Bug #13500242)
  • On Mac OS X, when viewing the results of a query that would normally exceed the window width, the last column would have a width of one character if the column type was numeric. (Bug #62588, Bug #13365052)
  • Within the Database, Synchronize With Any Source wizard, synchronizing a model from a Live Database Server source to a Model Schemata destination would crash after the Retrieve Object Information step. (Bug #64553, Bug #13812932)
  • The minimum size of the MySQL Workbench window has been lowered to 980x600 pixels, although officially the minimum screen resolution requirement remains at 1280×1024. (Bug #63519, Bug #13463411)
  • MySQL Workbench would not build with GLib 2.3x+, as only glib.h can be included directly. (Bug #63705, Bug #13500364)
  • Copying SQL to the clipboard could cause MySQL Workbench to hang or crash if the table comments contained Unicode characters that exceeded the buffer size. (Bug #64611, Bug #13840045)
  • While using MySQL Workbench to adjust a Users and Privileges role with a MySQL Server version prior to 5.1.6, an unhandled exception would result from MySQL Workbench attempting to access the mysql.event table. (Bug #63149, Bug #13496657)
  • A query like SELECT foo+1 FROM bar could cause a crash. (Bug #64051, Bug #13629089)
  • Scrolling the mouse wheel now only scrolls the focused window. (Bug #61480, Bug #12661387)
  • On Fedora Linux version 16 and greater, the service command is now used to start and stop the MySQL Server, instead of /etc/init.d/mysqld. (Bug #63777, Bug #13519817)
  • MySQL Workbench would prompt a user for the password to reconnect to a MySQL server that had lost the connection, and this password dialogue would not have focus yet still showed as the top window with a blinking cursor. To reduce confusion, this password window is no longer the top window. (Bug #62003, Bug #12918370)
  • On Windows XP, attempts to copy values from multiple cells would fail, and not insert values into the clipboard. (Bug #64281, Bug #13726466)
  • The Open value in viewer window did not open with SELECT queries that used the cast function. (Bug #63874, Bug #13548148)
  • The following sequence would crash MySQL Workbench: Database, Reverse Engineer to generate an EER diagram, then Database, Synchronize with Any Source, and then a mouse-click would cause the crash. (Bug #61876, Bug #12912593)
  • The following sequence could crash MySQL Workbench: "Open a model", "Synchronize the model with a remote database", "Modify the model", and then "Synchronize the model" a second time. (Bug #63943, Bug #13779239)
  • The Control + a key combination would not select all of the text within a window. (Bug #63752, Bug #13511244)
  • SELECT queries could crash MySQL Workbench during the validation stage of the SQL Editor. (Bug #64435, Bug #13788133)
  • Queries that explicitly set RESTRICT will now synchronize properly with those that do not, because RESTRICT is the default behavior in MySQL. (Bug #62432, Bug #13491535)
  • Password-based SSH authentication would still check the key-based authentication files within .ssh/ before prompting for a password. (Bug #60024, Bug #12672238)
  • The _idx suffix is now added to foreign keys as they are created.
  • And MySQL Workbench checks for duplicate named foreign keys if a document is loaded from a previous version of MySQL Workbench. And if duplicates are found, then the user is given the choice of renaming them. (Bug #60705, Bug #12621452)

New in MySQL Workbench 5.2.39 (Apr 11, 2012)

  • Updated the bundled MySQL Utilities to version 1.0.5

New in MySQL Workbench 5.2.38 (Feb 24, 2012)

  • Functionality Added or Changed:
  • The width of the "Reference column" drop-down selector is now set to the widest entry. (Bug #53278, Bug #11760835)
  • Bugs Fixed:
  • On Linux, the result set window would not display properly. (Bug #13615255)
  • Comments that spanned multiple lines and included stored procedures with comments that were surrounded by conditional comments would not be handled properly, as MySQL Workbench would end the outer comment unconditionally when the first inner comment was finished. (Bug #13490118)
  • On Microsoft Windows with the "classic mode" theme set, MySQL Workbench buttons were difficult to read. (Bug #13470583)
  • Generating a DBDoc report with both HTML Detailed Frames and Include DDL code for objects enabled would cause MySQL Workbench to stall. (Bug #13471637)
  • The SQL Editor Execute the Explain Command... feature did not function properly, and would return zero results. (Bug #13466571)
  • The Plugins, Utilities, Execute Query Into Text Output feature would duplicate the first column, and fill it with NULL values. (Bug #13470770)
  • Scripting Shell would fail to continue running after a breakpoint. Clicking Execute Script after a breakpoint now continues execution of the script. (Bug #13470397)
  • The Scripting shell window lost focus after opening and closing a tab. (Bug #13470451)
  • For Microsoft Windows, the Download Prerequisites link within the MySQL Workbench installer now directly links to the prerequisites manual page. (Bug #13448582)
  • Using the Open Connection to Start Querying dialog with a new (not stored) connection would cause MySQL Workbench to crash. (Bug #13028855)
  • It was possible for MySQL Workbench to generate a pop-up window underneath a different pop-up window, thus requiring a restart of MySQL Workbench when the bottom pop-up was required to be closed first. (Bug #12927510)
  • Dumping a schema via the Data export and restore option now prompts for a correct password, as needed. Before it would simply fail to export. (Bug #12903967)
  • The editor tabs would not update after a user was added. (Bug #12884776)
  • Under the File menu, using the Print to PDF... and Print to PS File... options for a model would crash MySQL Workbench. (Bug #12884845)
  • Query, Commit Result Edits and Query, Discard Result Edits could result in "Unrecognized command" errors, and not function properly. (Bug #63744, Bug #13511195)
  • On Microsoft Windows, tab titles were difficult to read on systems with dark backgrounds. (Bug #63715, Bug #13500349)
  • The search box within the MySQL Workbench toolbar did not perform searches. (Bug #61825, Bug #12757354)
  • On Microsoft Windows, the Open in viewer menu could be blank while viewing results. (Bug #63873, Bug #13548115)
  • Closing a tab could result in an unhandled exception. (Bug #64152, Bug #13655860)
  • Choosing the Open value in Editor option would scroll the result set to the top. Selecting this option no longer refreshes the results, so the selected row remains intact. (Bug #63860, Bug #13539049)
  • Executing a query after reordering multiple editor tabs would make the inactive editor tab active, and execute that query. (Bug #63866, Bug #13542154)
  • On Microsoft Windows, changing or deleting a row or column within a model, could cause a crash. (Bug #63056, Bug #13344572)
  • The object editor could leak memory and crash MySQL Workbench while handling notifications. (Bug #63025, Bug #13492608)
  • MySQL Workbench would highlight the MySQL 5.6 reserved words name, type, and types. (Bug #62775, Bug #13252599)
  • Clicking the foreign keys tab within the Alter table context could crash MySQL Workbench. (Bug #63050, Bug #13492730)
  • Recovery of the last state using either the Auto-save feature, or the Save snapshot of open editors on close option, would sometimes load improperly by creating an empty schema and/or crash while closing opened SQL editor tabs. (Bug #61950, Bug #12917371)
  • Exporting a model to a CSV file could crash MySQL Workbench. (Bug #63883, Bug #13685708)
  • Double-clicking on a table within the EER diagram editor would sometimes crash MySQL Workbench. (Bug #62451, Bug #13014823)
  • Selecting and editing multiple indexes or foreign keys would crash MySQL Workbench. (Bug #61863, Bug #62057, Bug #12757370, Bug #13013715)
  • Pressing the Control + Enter key combination within the SQL editor would generate a recoverable error. (Bug #62169, Bug #12927292)
  • The main schema information found within the object browser now updates after a table is altered, and collapses the expanded details. And selecting an object now reloads the data, which means the current (altered) data is displayed. (Bug #63828, Bug #13538990)
  • MySQL Workbench would not work with paramiko 1.7+. (Bug #63750, Bug #13519860)
  • MySQL Workbench did not test for and use the gl.pc pkgconfig files if present, to determine the location of GL/{gl,glx}.h and libGL.so. (Bug #63818, Bug #13538964)
  • MySQL Workbench would fail to compile under certain PCRE setups, like when pcre.h existed within /usr/include/pcre/. (Bug #63819, Bug #13538971)
  • Moving the placeholder row (an empty row) around within the table editor would crash MySQL Workbench. The placeholder row can no longer be moved. (Bug #64122, Bug #13629953)
  • Choosing the Close All But This option within the routines manager would freeze MySQL Workbench. (Bug #64133, Bug #13630602)
  • When viewing the foreign key definition window of the Alter Table editor, the restrict foreign key option did not display for either the update or delete actions, and instead the value would appear empty. (Bug #63978, Bug #13596254)
  • The Server Status window would incorrectly sort options. Numeric fields are now sorted numerically (e.g., 1300 is now after 500). (Bug #61659, Bug #12698865)
  • The File, Open SQL Script, Files of Type dialogue would incorrectly give the option to open files with the .dbquery suffix, instead of .qbquery. (Bug #63861, Bug #13541769)
  • A query similar to the following would crash MySQL Workbench: select c.* from actor c where actor_id=38 (Bug #63940, Bug #13582514)
  • The Beautify Query feature incorrectly formatted statements containing the UNION clause, which left the query with syntax errors. (Bug #64120, Bug #13629967)
  • After clicking Apply to alter a table where changes are not being made, the output window says "Preparing..." and does not automatically change to "No changes detected" until the window is clicked. (Bug #63842, Bug #13548232)
  • MySQL Workbench would freeze when a SELECT statement was executed on a table without private keys, and that included at least one UNIQUE NOT NULL column. (Bug #63867, Bug #13542546)
  • On Linux, right-clicking on a table and choosing the Alter Table feature would perform no function.
  • A workaround was to delete all XML nodes from /usr/share/mysql-workbench/modules/data/editor_mysql_table_live.glade like:
  • child internal-child="selection">
  • object class="GtkTreeSelection" id="treeview-selection5"/>
  • child>
  • Bug #62686, Bug #13491865)
  • Queries containing a UNION are now excluded from the automatic addition of the LIMIT clause, when the Limit Rows preference is enabled. (Bug #62524, Bug #13029474)
  • After a connection has timed out, clicking Reconnect to DBMS would freeze MySQL Workbench. (Bug #61722, Bug #12725314)
  • MySQL Workbench would crash while opening an existing EER model, after a file failed to open. (Bug #63841, Bug #13539006)
  • Individual model settings are now respected. Before they would be ignored in favor of the global settings. (Bug #61771, Bug #12757255)
  • While attempting to synchronize a database to any source, the Execute button to perform the synchronization was missing. Only the Go Back and Close buttons were shown. The Execute button is now standardized for all database synchronization options. (Bug #62130, Bug #12872823)
  • On Microsoft Windows, and when called from the home screen, opening and immediately closing the Manage Server Instances window would result in an unhandled exception. (Bug #63927, Bug #13571816)
  • A pop-up window is no longer generated when selecting an inactive server from within the Server Administration panel. (Bug #61810, Bug #12757347)
  • Running a SELECT statement and attempting to alias the only column selected would result in a crash. (Bug #64123, Bug #13629962)
  • When right-clicking on a table that has triggers, and then choosing Create Statement to either send the statement to the clipboard or SQL editor, the trigger creation statement is written before the table creation statement. (Bug #61698, Bug #12756722)
  • MySQL Workbench would crash after the following sequence: Synchronize Model With Database, Fetch Object Info, Continue. (Bug #63746, Bug #13591854)
  • Tables without an engine set were treated as though they were unable to support foreign keys. Therefore, the foreign key declaration would be missing after forward engineering these tables.
  • A workaround is to explicitly set the table engine to InnoDB. (Bug #63934, Bug #13562926)
  • If the charset/collation is set to use the default value, then DEFAULT will now be inserted as the charset/collation name within generated queries. (Bug #61202, Bug #12622649)
  • Plugins, Utilities, Reformat SQL Query would mangle queries by removing the first SELECT statement if a subquery clause was present. (Bug #60311, Bug #12613662)
  • Pasting a query with \r line endings instead of \r\n or \n could cause MySQL Workbench to mangle the query. Line endings are now normalized after pasting, like they already were while loading files. (Bug #56334, Bug #11763603)
  • On Microsoft Windows, rapidly repeating a query could emit an error. (Bug #56776, Bug #11763997)
  • On Microsoft Windows, the Routines editor would insert extra line endings. (Bug #55006, Bug #11762414)
  • The Beautify Query wizard would remove spaces from MySQL date function parameter values that contain INTERVAL. (Bug #61021, Bug #12546864)
  • On Microsoft Windows, using Alt based key shortcut combinations would not always work. (Bug #54119, Bug #11761607)
  • MySQL Workbench would emit an error (error code: 1064) with queries using WITH ROLLUP. (Bug #57178, Bug #11764355)
  • MySQL Workbench would not behave correctly with ON UPDATE CURRENT_TIMESTAMP as a default value, while synchronizing models, and would update the field. (Bug #61087, Bug #12546735)
  • When a table had columns like DOUBLE(M,D), the data model synchronization would discard the (M,D) specification, and convert the columns to DOUBLE(11). (Bug #61165, Bug #12565933)
  • The dialog windows now remain in front, even when another part of MySQL Workbench is clicked. (Bug #48692, Bug #11756737)
  • MySQL Workbench now detects duplicated trigger names while using the Model,Validation, (MySQL)->Validate all and Model, Validation (MySQL), Check integrity sequences. (Bug #44063, Bug #11752780)

New in MySQL Workbench 5.2.37 (Jan 4, 2012)

  • Bugs Fixed:
  • The SQL editor would open a table in read-only mode when opened from either the Edit Table Data link via the home screen, or if the schema tree was not expanded.
  • Viewing the Server Logs on a MySQL server after it has been stopped, resulted in an unhandled exception.
  • MySQL Workbench could freeze while importing a dump.
  • Exporting a database that has a stored procedure, resulted in an unhandled exception.
  • Generating a list of tables and views was slow, when compared to the previous MySQL Workbench version.
  • Creating a foreign key using the Place a relationship using existing columns EER option would crash MySQL Workbench.
  • Changing a schema name with routines present would prepend and append invalid delimiters.
  • The field editor would hang when large text values were shown.
  • MySQL Workbench now quotes table names in generated SQL queries, when the table name contains characters that would break the SQL statement.
  • MySQL Workbench would generate an exception after editing and then closing a table tab within the EER diagram window.
  • The SQL editor would not load under certain circumstances. The check for restoring split positions was corrected to solve this issue.
  • The Help, Check for Updates feature did not function properly.
  • The password prompt dialog is no longer the topmost window over all open applications on a system, but now it's only the topmost MySQL Workbench window.
  • The user administration panel did not fit on systems using a 1024x768 screen resolution.
  • MySQL Workbench would sometimes be unable to save changes that were only to comments. It used a hard limit, but now uses the MySQL Server limit for maximum comment lengths. For example, it would compare the first 60 characters of a table comment change, and generate an error if the change did not affect the first 60 characters.
  • From the MySQL Server 5.5.3 changelog: the maximum length of table comments was extended from 60 to 2048 characters. The maximum length of column comments was extended from 255 to 1024 characters. Index definitions now can include a comment of up to 1024 characters.
  • Database synchronization would sometimes confuse similar table and routine names.
  • Case changes to ENUM values were not recognized by MySQL Workbench.
  • Within the Database, Forward Engineer dialogue for a Model, the DROP Objects Before Each CREATE Object option was ignored if the Export MySQL Table Objects option was not selected.
  • Altering the case of a table name caused an error, when that was the only change and the SQL Identifiers are Case Sensitive option was set to true.
  • The Forward engineering feature now preserves case for schema names, even on case-insensitive systems. Before it would create lowercase variants of the schema names on these systems.
  • The Forward engineer feature would sometimes create invalid SQL syntax for old MySQL Workbench files with deleted routines and roles.

New in MySQL Workbench 5.2.36 (Dec 5, 2011)

  • Functionality Added or Changed:
  • The Edit, Format, Beautify Query feature no longer quotes column names. (Bug #13030351)
  • The edit context menus, such as Edit Table Data, now open as new tabs. Before they reused (overwrote) the same tab. (Bug #61774, Bug #12731459)
  • If only one server instance is defined, then the Server administration, Manage security option will now automatically connect to it, instead of prompting to choose a server instance. (Bug #61451, Bug #12647697)
  • Indexes are now shown within the schema tree. And indexed columns are also indicated within the table information panel. (Bug #61295, Bug #12616367)
  • The auto_increment information is now displayed within the SQL editor. (Bug #60933, Bug #12402845)
  • On the SQL Editor tabs, right-clicking a tab now offers the following options: New Tab, Save Tab, Close Tab, Close Other Tabs, and Copy Path to Clipboard. (Bug #60883, Bug #12399369)
  • The query and associated results are no longer displayed in separate tabs, but they are now viewable within a single interface. (Bug #60624, Bug #11926853)
  • The SQL editor windows did not have maximize or minimize buttons, but these windows are now opened in configurable tabs. (Bug #60606, Bug #12617245)
  • The export result set dialog has been redesigned, and now saves the previously used settings. (Bug #60490, Bug #11889185)
  • SQL snippets can now be edited, and then saved. (Bug #58879, Bug #11765873)
  • Tab spacing is now defined as 4 on the Linux and Mac platforms, to be consistent with Windows. (Bug #58867, Bug #11765862)
  • A Paste Row context option was added to the Edit Table Data menu of the Object browser. (Bug #58169, Bug #11765228)
  • Additional Export data types were added to the SQL Browser, which now includes JSON, Excel spreadsheet, and MySQL formatted XML. (Bug #56808, Bug #11764024)
  • The Overview tab was replaced, in favor of the new schema tree view. (Bug #56795, Bug #11764014)
  • Added the ability to edit data from a result set after executing a query. If MySQL Workbench determines that a returned result cannot be edited, then a read-only icon will be displayed, and hovering over the icon reveals a tooltip that explains why it cannot be edited. (Bug #56794, Bug #11764013)
  • Added a input field to filter the schema list in the Object Browser. (Bug #55162, Bug #11762554)
  • The Alter table option defaulted to Table view, but now uses the new table editor. (Bug #55050, Bug #11762454)
  • MySQL Workbench did not support the .dbquery file extension. (Bug #54321, Bug #11761795)
  • Added the Copy Inserts to Clipboard option to the Plugins, Objects menu. (Bug #54036, Bug #11761531)
  • Added toolbar buttons to toggle the sidebars and bottom panel of the SQL Editor. (Bug #53714, Bug #11761243)
  • The table view within the Object Browser has changed. The table view includes another level of grouping, which includes Columns, Indexes, Foreign Keys, and Triggers. Before, only the columns were listed. (Bug #53504, Bug #11761050)
  • The table information window within the Object Browser has been expanded to include foreign keys, triggers, indexes, and data types. (Bug #53502, Bug #11761048)
  • The Overview tab was removed, in favor of the new schema layout. (Bug #53323, Bug #11760879)
  • New entries to the error log are now shown when restarting the MySQL server.
  • When log_output is set to FILE, the log files are now displayed in the MySQL Workbench log page. (Bug #52445, Bug #11760073)
  • The SQL snippets interface been redesigned and relocated to its own sidebar. Its display may also be toggled. (Bug #50069, Bug #11757950)
  • The SQL Editor history tab now auto-scrolls to the bottom, so that the most recent entry is visible. (Bug #49317, Bug #11757294)
  • Added a new format to the SQL Editor for export, which is identical to the XML generated by the mysql --xml command. It's titled XML (mysql format). (Bug #49305, Bug #11757284)
  • Added the ability to copy Status and System Variables to the clipboard. (Bug #49074, Bug #11757074)
  • Bugs Fixed:
  • While using the import/restore feature of the server instance administration area, views and routines were not imported. (Bug #13041684)
  • After right-clicking a cell within the insert grid of the model table editor, an unhandled exception was generated on Microsoft Windows, and a fatal error on Mac OS X. (Bug #13029647)
  • The Manage Security window initially shows the first connection as selected, but it is not. (Bug #13026478)
  • While administrating a server instance, importing a project folder will result in an "Import from Disk" error after the following sequence: Data Export and restore, Export to Dump project folder, with Dump views and Dump stored routines... checked, then exporting a schema with views and/or routines, opening the SQL Editor and dropping the exported schema, then clicking Import to Disk within the server administrator. (Bug #13025419)
  • Pressing Refresh within the Slow Query Log tab resulted in an unhandled exception. (Bug #12928308)
  • Within a diagram view, the Edit, Find, Find advanced option was unrecognized and performed no function. (Bug #12884864)
  • A previously selected object could not be dragged, as it would instead enter "Edit Name" mode after the second click. (Bug #12884796)
  • New server instances created by the Manage Server Instance wizard would send the incorrect service name to the MySQL admin. The command is now constructed at run time using the service name from the server instance profile. (Bug #12567371)
  • The Alter Table... option did not function on tables with triggers. (Bug #12546727, Bug #61110)
  • Creating a server instance using unicode characters worked, but an error would be generated while attempting to open them. (Bug #63100, Bug #13350556)
  • Using Alter routine to make changes would sometimes crash after clicking Apply. (Bug #63076, Bug #13340307)
  • On Microsoft Windows, upgrading MySQL Workbench required MySQL Workbench to be run as a user with Administrator rights. (Bug #62709, Bug #13116366)
  • Opening model files while using a MySQL Workbench version that was installed over a previous MySQL Workbench installation would sometimes cause permission issues. The workarounds included running MySQL Workbench with administrator privileges, or removing the installation folder before upgrading. (Bug #62703, Bug #13323929)
  • An unhandled exception might be emitted after modifying an EER diagram, with a popup window reading "MySQL Workbench has encountered a problem - Queue empty." (Bug #62651, Bug #13079826)
  • A query history date would incorrectly change when a history entry, other than the last one, was selected when the query was executed. (Bug #62642, Bug #13104635)
  • The Create Routine... feature would report that it created a routine, but it did not, and the error was revealed in the output window. (Bug #62624, Bug #13362190)
  • The Server Administrator did not function with MySQL Server 5.0. And although MySQL Workbench does not officially support MySQL Server 5.0, this functionality now works. (Bug #62549, Bug #13029339)
  • The Reconnect to DBMS toolbar option would not reconnect after unchecking the Safe Updates preference. A workaround is to uncheck this option, then restart MySQL Workbench. (Bug #62448, Bug #13014798)
  • Expanding then collapsing the query results window within the SQL editor, yielded a different appearance. (Bug #62371, Bug #13007096)
  • On Ubuntu 11.10, MySQL Workbench would freeze at the startup splash screen. (Bug #62347, Bug #13099521)
  • The Configuration File path within the Server Administration panel is now read-only, when before it would temporarily set the path. This path should be set via the profile setting instead. (Bug #62252, Bug #12922746)
  • Fixed a typo, where "database" was misspelled as "dabase" within the DBDesigner description. (Bug #62250, Bug #12912465)
  • The Auto-save feature would behave with unpredictable results, by opening up an incorrect number of windows when MySQL Workbench was next loaded. (Bug #62192, Bug #12907612)
  • Opening Management, Server Logs would generate an unhandled exception when using table-based logging, while the general log was empty. (Bug #62123, Bug #12872836)
  • After setting a default schema, choosing Refresh all while the schema information is "fetching" would result in an unhandled exception. (Bug #62086, Bug #12913399)
  • Switching between two logins for a single database connection required the password to be reentered with each switch. (Bug #62052, Bug #12921420)
  • On Linux, the Database, Generate Catalog Diff Report... model option was disabled. (Bug #62040, Bug #12844314)
  • Within the Routine Editor, opening multiple Apply SQL Script to Database dialogues and then executing one, except for the last one opened, would crash MySQL Workbench. (Bug #61988, Bug #12918227)
  • On Microsoft Windows, the EER diagram search did not work across multiple pages. (Bug #61957, Bug #12818216)
  • Fixed Data export so that routines and views are only exported when they are selected. In addition, individual views may now be selected for export. (Bug #61937, Bug #12949918)
  • Importing a dump would misquote the --defaults-extra-file option, which would cause the import to fail. (Bug #61910, Bug #12912786)
  • A Download Prerequisites link is now displayed when prerequisites, such as the "Visual C++ 2010 Redistributable Package" requirement, are not met. Before, the link was not visible. (Bug #61897, Bug #12769499)
  • Repeatedly refreshing a schema resulted in an unhandled exception. (Bug #61892, Bug #12762893)
  • The File, Open Recent feature would open the incorrect script. (Bug #61856, Bug #12912374)
  • On Mac OS X, switching from the Model tab to the EER Diagram tab caused an error sound. (Bug #61809, Bug #12757337)
  • File, Export, Forward Engineer SQL CREATE Script would append an extra space to TINYINT(1) after converting it from BOOL. (Bug #61696, Bug #12711138)
  • On Microsoft Windows 7, some MySQL Workbench buttons would be difficult to read due to incompatible background colors with the "Windows classic Style" scheme. (Bug #61685, Bug #12711145)
  • MySQL Workbench would not recognize the active schema with case insensitive servers. As a result, an active schema within the Object browser would be unselected after a USE statement was executed. (Bug #61641, Bug #12711143)
  • The Users and Privileges window did not scale to low screen resolutions like 1024x768. It does now, although MySQL Workbench still has an official minimum screen resolution of 1280x800. (Bug #61518, Bug #12661556)
  • Tab panels within Server Administration would not fresh properly. (Bug #61452, Bug #12647731)
  • The Object editors (such as Alter Table, Alter View, and Alter Routine) now open as tabs, instead of separate wizard windows. (Bug #61422, Bug #12642157)
  • Exporting SQL for tables that included comments would generate invalid SQL statements. A comma was missing immediately before the COMMENT. (Bug #61393, Bug #12627762)
  • After opening a saved model file, the Control+T shortcut would not work from within a query window. (Bug #61379, Bug #12627716)
  • MySQL Workbench could crash while restoring large files. (Bug #61365, Bug #12627685)
  • The Clear script output and Close this script tab buttons are now disabled in non-script tabs. (Bug #61318, Bug #12616331)
  • On Linux, code folding for stored procedures and loops did not work properly within the SQL editor. (Bug #61302, Bug #12612394)
  • Pressing Execute after double clicking and editing a field in select all mode, resulted in an unhandled exception. (Bug #61279, Bug #12627523)
  • On Microsoft Windows, the Find option (Control+F) for the SQL editor was not available. (Bug #61233, Bug #12622697)
  • Executing a slow query would not notify the user that the query was running. The new SQL editor interface does show the progress. (Bug #61231, Bug #12589710)
  • When hovering the mouse pointer over a table figure on a diagram, the foreign key tooltip would hide the table column names. (Bug #61055, Bug #12546715)
  • The default schema selection would be lost after synchronizing a model. (Bug #60975, Bug #12621744)
  • MySQL Workbench would sometimes crash while in Forward Engineering mode. (Bug #60950, Bug #12572071)
  • On Linux and Mac OS X, using Tab and Shift+Tab to jump to next/previous fields has been added to the query result view. It had previously only worked on Windows. Additionally, the Escape key will now cancel editing of the current cell, and PageUp/PageDown scrolls one page up and down in the result set. (Bug #60865, Bug #12368205)
  • Manipulating multiple SQL editor tabs would sometimes result in uncaught exceptions. (Bug #60764, Bug #12621640)
  • MySQL Workbench would crash when attempting to use Alter Table or Create Table from within the context menu. (Bug #60760, Bug #12621510)
  • Fixed a crash bug, which would happen on exit. (Bug #60733, Bug #12632325)
  • If a schema within the schema panel was clicked, then a table was also clicked (dropped down) within the schema, then the panel containing Actions, Schemas, and details would expand to fill half of the view window, and the size could not be adjusted. (Bug #60692, Bug #12587848)
  • The Generate INSERT Statements for Tables option would not generate INSERT statements for BLOG columns. (Bug #60657, Bug #12565791)
  • Factory snippet files were fixed, to include proper line-endings for all platforms. (Bug #60643, Bug #12621434)
  • Closing MySQL Workbench would not prompt to save unsaved work from modified SQL files and windows. (Bug #60557, Bug #11926868)
  • The SQL editor output tab did not report the number of affected rows. (Bug #60535, Bug #12617147)
  • The Syncronize model with Database wizard would not properly handle case-sensitive table names. (Bug #60523, Bug #12617135)
  • Open diagram tabs from a saved MySQL Workbench state were not saved properly. (Bug #60515, Bug #12617096)
  • The Advanced Export Options preferences were not saved, and would reset after restarting MySQL Workbench. (Bug #60497, Bug #11889197)
  • Connection and query tabs can now be reordered, by dragging and dropping with the mouse pointer. (Bug #60409, Bug #11865602)
  • On Linux, viewing the embedded documentation required the python-sqlite2 package. (Bug #60336, Bug #11874507)
  • On Mac OS X, Command+W will now close the active script editor tab, and Command+Shift+W will now close the active connection tab. This is now consistent with behavior on other operating systems. Before, the Command+W combination closed the active connection tab. (Bug #60253, Bug #11829750)
  • Pressing Esc once now escapes out of edit mode within the row editor. Before, it had to be pressed twice. (Bug #60131, Bug #11829997)
  • The Copy Row Content option would throw an unexpected exception, from within a model.
  • In addition, the Paste Row option was added. (Bug #60116, Bug #12417533)
  • The USE statement is now properly quoted. For example, an invalid USE query would be generated if a schema contained a - character. (Bug #59882, Bug #11766711)
  • Copying a table column would lose the data type, when only the column line number was selected instead of the data type or field name. (Bug #59285, Bug #11905520)
  • Within a server instance administration panel, setting Export to Self-Contained File to an invalid path resulted in an unhandled exception. (Bug #59246, Bug #11766194)
  • The Output tab of the SQL editor now adjusts whitespace characters, as to display queries on a single line. (Bug #58989, Bug #11765966)
  • Enabling the Limit Rows SQL editor preference would cause invalid SQL syntax with SELECT INTO statements. (Bug #58732, Bug #11765738)
  • When viewing text at a size greater than 100% (such as 125%), some text field labels would be partially hidden. (Bug #58408, Bug #12628507)
  • Server Administration, Manage Import/Export would return an error about the dump module. (Bug #58098, Bug #11765164)
  • MySQL Workbench would allow the creation of foreign keys on tables using engines that do not support them. A warning is now emitted if this is attempted. (Bug #57875, Bug #11764972)
  • MySQL Workbench did not fully adhere to locale settings, which could result in unhandled exceptions. (Bug #56869, Bug #11764077)
  • The Foreign Keys tab of the Alter Table wizard only created an index, without the foreign key. (Bug #56818, Bug #11764033)
  • Broken views (e.g., a column no longer exists) are now displayed as broken within the schema tree view. (Bug #56701, Bug #11763928)
  • Using MySQL Workbench could result in an unhandled exception, with the message "Attempted to read or write protected memory. This is often an indication that other memory is corrupt." (Bug #56034, Bug #11763338)
  • Editor windows would sometimes lose focus, but they are now docked within the main application window, which eliminated this problem. (Bug #55923, Bug #11763235)
  • Auto-scrolling for the SQL output and history windows was added. (Bug #55865, Bug #11763183)
  • The Find feature (search) was replaced with a panel, which offers more consistent behavior across platforms. The Find and Replace feature is also now a panel, instead of a pop-up window. (Bug #54765, Bug #11762197)
  • On Linux, the previously set window positions and sizes were not saved by MySQL Workbench. These settings are now saved upon closing, and used when MySQL Workbench is loaded. (Bug #54025, Bug #11761521)
  • The Finish button was inactive (grayed out) for the Edit Table Data dialog, if the database contained exactly one table. (Bug #52833, Bug #11760422)
  • If a table cannot be edited (e.g., no Primary key), then MySQL Workbench now notifies users of the reason, when before the edit option was simply not available. (Bug #51563, Bug #11759263)
  • Closing and opening the SQL Editor now sets the last used schema as the default, instead of the schema specified within the connection. (Bug #51454, Bug #51026, Bug #11759165, Bug #11758776)
  • A triple-click was required to change the Referenced column of a foreign key, while editing a table within an EER diagram. (Bug #50725, Bug #11758512)

New in MySQL Workbench 5.2.34 (May 26, 2011)

  • Functionality added or changed:
  • The Check for updates... menu item that was removed several releases ago has been restored. (Bug #60488, Bug #11879029)
  • If a column value is too long to display, an ellipsis (...) is displayed at the end to indicate that there is more data. (Bug #55976, Bug #11763283)
  • MySQL Workbench now shows query execution time. (Bug #51199, Bug #11758933)
  • The SQL Editor can now wrap long text lines. This is controllable per editor instance using its context menu. By default, line wrapping is off. (Bug #50569, Bug #11758372)
  • Bugs fixed:
  • Beautify Query mishandled queries containing table aliases. (Bug #11883490)
  • File import operations failed with these errors:
  • Error executing task: 'module' object has no attribute
  • 'STARTF_USESHOWWINDOW'
  • Error executing task local variable 'p1' referenced before
  • assignment (Bug #60982, Bug #12430815)
  • Multiple USE commands to change databases in the SQL Editor caused MySQL Workbench to crash. (Bug #60856, Bug #12358480)
  • MySQL Workbench could not view the server logs if the server was configured with log output set to 'TABLE,FILE'. (Bug #60853, Bug #12365454)
  • Find did not work in Query tabs. (Bug #60787, Bug #12347063)
  • Changing connection parameters in Synchronize Model resulted in an error message. (Bug #60771, Bug #12329285)
  • For import and export command operations using a Unix socket file, MySQL Workbench added an incorrect --pipe option to the command. (Bug #60756, Bug #12325422)
  • Forward Engineer SQL Script wizard wrote incomplete output. (Bug #60751, Bug #12329302)
  • Beautify Query incorrectly removed spaces between table names and table aliases. (Bug #60742, Bug #12327013)
  • New server instances were not always displayed in the Server Adminstration list. (Bug #60684, Bug #11933087)
  • On Linux, MySQL Workbench was overly aggressive about reading schema information from INFORMATION_SCHEMA, leading to slowdowns when connecting to the MySQL server. Now information is read only for the default schema. (Bug #60644, Bug #11926793)
  • Control+S did not save models or SQL Editor scripts. When opening an SQL script, it did not display the filename. (Bug #60594, Bug #12402774)
  • MySQL Workbench could crash trying to display result sets that contained binary data. (Bug #60588, Bug #12385959)
  • The SQL statement generated by clicking an item in the action pane failed to include the qualifying database name. (Bug #60562, Bug #11926864)
  • The Administrator panel would not load for large process ID values of the MySQL server. (Bug #60505, Bug #12397312)
  • MySQL Workbench crashed trying to execute some CREATE TABLE statements. (Bug #60475, Bug #12356405)
  • Clicking on a user name to obtain details caused MySQL Workbench to crash if the name contained an apostrope. (Bug #60473, Bug #11889207)
  • Query results could not be saved to a directory for which the name contained Japanese characters. (Bug #60438)
  • Exporting query results after entering a file path name did not work. (Bug #60438, Bug #11868335)
  • Multiple-selection copy did not work. (Bug #60410, Bug #11865601)
  • MySQL Workbench failed to compile on Gentoo Linux. (Bug #60358, Bug #12368202)
  • Stored procedures could not be opened from the objects tree if the SQL Delimiter had been changed to the ';' character. Now the label for this option in the Preferences dialog has been changed to Non Standard SQL Delimiter to better reflect its actual meaning. The tooltip has also been changed to be more descriptive. In addition, if an Alter ... operation fails due to a parse error, the retrieved DDL code is shown as is in the SQL editor. (Bug #60354, Bug #11889184)
  • Attempting to connect to a nonexistent server put MySQL Workbench in a nonresponsive state. (Bug #60329, Bug #11834154)
  • Record set export to a file failed unless the file name was given as an absolute path name. (Bug #60256, Bug #11874435)
  • Output from the routine editor added excessive blank lines between routine definitions. (Bug #60205, Bug #11874345)
  • When database connections had process IDs with large values, the connection tab displayed an error box rather than process information. (Bug #60192, Bug #12397794)
  • Items from the SQL Editor history were not always available to be copied into the SQL script. (Bug #59807, Bug #1766651)
  • It was not possible to import a dump if MySQL Workbench was installed in a directory having a name that contained spaces. (Bug #59737, Bug #11766595)
  • The description given in the Workbench Preferences dialog for the --safe-updates option was incorrect. (Bug #59370, Bug #11766289)
  • Connection sorting was lost after a status refresh. (Bug #59355, Bug #11766279)
  • The Users column in the Schema Privileges tab was not sortable. (Bug #59138, Bug #11766100)
  • When the user closed the main window with a connection active, MySQL Workbench did not terminate the connection. This lead to Aborted_clients errors on the server side. (Bug #58944, Bug #11765929)
  • Opening a connection twice resulted in unexpected errors when executing queries on the connection. (Bug #58835)
  • When double clicking tables in a model diagram, tabs were mismanaged such that the proper set of tabs did not remain available. (Bug #57349, Bug #11764509)
  • If MySQL Workbench finds that .NET is not installed, it now provides a link for the user to get the .NET instaler. (Bug #55145, Bug #11762538)
  • The TRIGGER privilege could not be assigned at the schema level. (Bug #52977, Bug #11760556)
  • It was not possible to view or edit long text lines with the inline editor. (Bug #52087, Bug #11759751)
  • On Windows, a packaging error for the Zip file distribution led to spurious GRT Shell warnings at MySQL Workbench startup. (Bug #49813, Bug #11757719)
  • For SQL Editor tabs where the connection had no name, connection information was not shown. Now the hostname is shown (up to 21 characters). (Bug #49058, Bug #11757060)

New in MySQL Workbench 5.2.33 (Mar 12, 2011)

  • Bug #60370 Error in securityManager module: error calling WbAdmin…
  • Bug #60396 SQL script generation not working
  • Bug #60369 Cannot open saved work bench file
  • Bug #56456 Users not sorted for schema privileges
  • Bug #59315 Kill Query SQL Error 1064
  • Bug #59774 Crash when closing query results tab
  • Bug #59932 List of EER diagrams is not updated when diagram is deleted, causing crash

New in MySQL Workbench 5.2.32 (Mar 8, 2011)

  • [improved]
  • new and improved UI for Administration and Query-Editor
  • [closed]
  • Bug #15245 Can’t adjust multiple databases with binlog-do-db and binlog-ignore-db
  • Bug #38597 Table comments can be too long
  • Bug #54059 Sql Editor shows text without anit-aliasing
  • Bug #54180 absurd statement created by alter script
  • Bug #54258 An extra ‘;’ added to SQL when procedure name changes
  • Bug #54836 Forward engineering model fails with routines
  • Bug #55158 Add some extra visual notification when model synchronization failed.
  • Bug #55399 not able to create foreign key relationships
  • Bug #55764 Blank output screen is shown when starting Workbench
  • Bug #56389 the option “Skip Creation of FOREIGN KEYS” to export is not creating index
  • Bug #56501 Ctrl+V does not give out the expected result
  • Bug #56631 Add the Command Line Client feature to Workbench SQL Editor
  • Bug #56705 MySQL Workbench hangs in full screen mode
  • Bug #57127 error pops up permanent: Either schema or table is not selected.
  • Bug #57486 Associate Result Tabs with Query
  • Bug #57570 “-quit-when-done” option crashes Workbench with Unexpected Error
  • Bug #57667 autosave my query
  • Bug #57871 False Positive – Requested Clipboard operation failed
  • Bug #58117 Forward Engineered SQL create DELIMITER and USE on the same line
  • Bug #58238 index constantly recreated during sync
  • Bug #58554 Error when creating relationship between tables created from a plugin
  • Bug #58562 –lock-tables enabled even when –single-transaction option selected
  • Bug #58714 Query Beautify: NOW() function incorrectly modified
  • Bug #58926 Forward Engineer CREATE script doesn’t create PKs (for ident relationships)
  • Bug #58930 MySQL Workbench 5.2.31 cannot connect to DB
  • Bug #58960 python debugger aborts script after 1s of execution
  • Bug #58998 Generated SQL scripts should clean up connection settings after themselves
  • Bug #59000 Unable to add users to MySQL 5.5.8 with GUI tools
  • Bug #59083 Problems with installing from repository
  • Bug #59098 Can’t Start MySQL Service
  • Bug #59198 Error starting MySQL Workbench Server Admoinistration
  • Bug #59210 Error on copying field content
  • Bug #59399 Save state of Workbench Central on home screen
  • Bug #59411 mysqldump failure when exporting
  • Bug #59450 Beautify misformats some functions
  • Bug #59528 Workbench 5.2.31a after typing the “`” backspace, delete can’t be used
  • Bug #59535 MySql Workbench crash
  • Bug #59554 after executing sql snippet with order by fields are not editable
  • Bug #59559 Error in EER diagram trying to edit table’s details
  • Bug #59578 error creating a new server instance
  • Bug #59633 Not able to start Workbench
  • Bug #59638 Start Command Line Client
  • Bug #59668 Deletion of a recursive foreign key deletes the primary key
  • Bug #59721 Font too small in edit tabs
  • Bug #59745 throw error dialog about 2-3 seconds after shutting down.
  • Bug #59913 Workbench crashes on startup when running on another profile
  • Bug #59918 Couldn#t create server instance
  • Bug #60112 Export to PNG isn’t working
  • Bug #60148 mysql schema doesn’t appear in Object Browser
  • Bug #60156 Editing row data
  • Bug #60265 Command: New Server Instance; Problem: Fault on “Management And
  • Bug #60290 MySQL Workbench 5.2.31 CE BUG
  • Bug #60302 Read/Write protected memory when adding a localhost database

New in MySQL Workbench 5.2.31a Revision 7115 (Dec 16, 2010)

  • Bug #58832 MySQL Workbench Unexpected Error
  • Bug #58833 Opening snippet tab crashes the workbench
  • Bug #58846 workbench closing when closing “user defined types” window by [X]
  • Bug #58850 sql-editor has problems interpreting and loading text
  • Bug #58893 Workbench generated script should be modificable

New in MySQL Workbench 5.2.31 Revision 7110 (Dec 9, 2010)

  • [improved/new]
  • added native (WMI) remote access for administration of windows servers
  • added python script-debugger
  • added MySQL Utilities
  • [closed]
  • Bug #49056 View->Windows has no impact
  • Bug #49279 WB incorrectly allows default column values for auto-increment columns
  • Bug #49425 Object editor pane decreases in size each time a new Schema is edited
  • Bug #50035 Status bar has incorrect capitalisation in message displayed after printing
  • Bug #50578 high CPU load when using administrator tab
  • Bug #50668 Would like comment entry on layer tab
  • Bug #50822 SQL formatter/beautifier
  • Bug #52004 View formatting problem
  • Bug #52151 Intermittent No data for System Health
  • Bug #52331 Temporarily enable Hand tool while spacebar is depressed.
  • Bug #53740 mad behaviour on sudo/su
  • Bug #54209 Need more info on Need newer mysql dump version
  • Bug #54411 Extra returns being added to DDL in trigger editor
  • Bug #54753 End key in results grid goes off screen
  • Bug #54910 Export data to SQL Script doesn’t quote values
  • Bug #54952 Diagram panel is short
  • Bug #54983 Some data in the WB Output window can no longer be selected or copied.
  • Bug #55031 Workbench can’t enable/disable local_infile (LOAD DATA LOCAL)
  • Bug #55139 ‘Print’ and ‘Print preview’ of the EER diagram produce invalid output.
  • Bug #55214 Refresh / Refresh All causes tables & views to empty
  • Bug #55237 Model Overview – Modified Column is incorrect
  • Bug #55242 unable to use the argument editor to define a custom SET
  • Bug #55336 Paste a text object doesn’t work the second time
  • Bug #55348 Undo column type change does not update model diagram
  • Bug #55399 not able to create foreign key relationships
  • Bug #55674 PYTHONPATH from other Python installations interferes with workbench
  • Bug #55708 Edit relationship editor doesn’t show when editor is already open
  • Bug #55813 Sorting in MySQL Admin tool does not work
  • Bug #55864 Changing default schema using combo box in SQL Editor scrolls incorrectly
  • Bug #55889 out of memory for export to csv
  • Bug #55901 Sometimes the “close tab” functionality does not work correctly
  • Bug #55994 Dblclick to select table not working in diag when swapping betw. # tables
  • Bug #56014 Table-Editor stalls on populating “referenced table” dropdown-list
  • Bug #56024 unable to check foreign key reference in create table in Workbench
  • Bug #56067 MWB file shelling
  • Bug #56084 Deleting figures (routine groups) doesn’t delete routine(s)
  • Bug #56113 Export fails when more that 1 Admin tab is open and databases are selected
  • Bug #56144 Workbench Administration, Connections tab, list always scrolling itself
  • Bug #56179 Rev. Engineer Database > Connection Options > remove “Default Schema”
  • Bug #56302 MySQLWorkBench prompting me for password when I didn’t ask to connect
  • Bug #56314 Table descr. panel doesn’t maintain height when switching between tables
  • Bug #56321 misleading instructions shown in Role-Editor
  • Bug #56403 Saving over readonly file
  • Bug #56588 snippets, crash on right click
  • Bug #56792 Editing relationship mandatory does not update referenced column
  • Bug #56863 libpython2.6.so.1.0 Dependency Error for Fedora >= 14
  • Bug #56897 Restore per-table backups in alphabetical order
  • Bug #56898 Find and Replace doesn’t work in SQL Query window
  • Bug #56911 creating new (first) server instance: find_config_file/local fails
  • Bug #56919 Admin Server Status incorrect, unable to start/stop service
  • Bug #56950 formatting errors when exporting SQL insert statements
  • Bug #56987 config file
  • Bug #57300 Unhandled exception when attempting to add an account
  • Bug #57329 Cannot Forward Engineering a view with JOIN … USING syntax
  • Bug #57399 Literal values not correctly quoted in INSERT commands
  • Bug #57418 Error Opening Configuration File
  • Bug #57449 Lost connection, Server gone away only with Workbench 5.2.29
  • Bug #57537 get_local_ip_list() implementation in mysql-workbench-5.2.29 is broken
  • Bug #57545 Forward engineering is quoting boolean values causing incorrect cast values
  • Bug #57636 Script converted to cp850 on load got truncated
  • Bug #57665 Inconsitent Default Timestamp Context Menu
  • Bug #57669 OK button only triggers when clicked exactly at OK text
  • Bug #57684 typo in message ‘Error in sercurityManager module’ …..
  • Bug #57695 Cannot connect to remote server administration
  • Bug #57696 MySQL Workbench SSH locks up / freezes when ssh key not available
  • Bug #57715 Can’t change color of table title in EER diagram
  • Bug #57793 Editing table columns not possibel with double click
  • Bug #57865 Datatype “DOUBLE(M,D)” will be switched into “DOUBLE” …
  • Bug #57907 Arrange commands not working in OS X
  • Bug #57919 MySql Workbench encountered a problem
  • Bug #57941 Admin->Accounts: No user accounts shown, exception when adding user
  • Bug #58045 Enhancement Request: unquoted input of numeric or date fields
  • Bug #58099 Null Bytes (\\0) cause truncated query result in SQL Editor
  • Bug #58223 Cannot alter/edit table with mixed case name
  • Bug #58261 The distribution package contains autotools cache directories
  • Bug #58263 The Autotools should not be required to build Workbench
  • Bug #58274 Default database -> No database selected
  • Bug #58347 Workbench Reformat SQL Query creates invalid queries
  • Bug #58354 Object browser don’t refresh databases schema
  • Bug #58356 beautify function fails on CREATE TABLE
  • Bug #58357 beutify function erases statement on CREATE INDEX
  • Bug #58358 query formatter fails on selected query
  • Bug #58359 query formatter indentation fails on partially selected query
  • Bug #58360 query formatter converts non-keywords to uppercase
  • Bug #58361 Query formatter mangles query when CASE operator is used
  • Bug #58367 Beautify two query error
  • Bug #58377 Export as “SQL Insert Statements” file does not work properly
  • Bug #58400 Start/stop server displays error message
  • Bug #58441 User Defined type flags are repeated in the exported SQL
  • Bug #58565 Beautifier giving unexpected exception for queries that aren’t syntax correct
  • Bug #58569 Format – Beautify Query munges “AS” keyword and alias
  • Bug #58586 WB regression – Server Health graphs/Status no data
  • Bug #58588 “toggle limitation of the records number” caused error
  • Bug #58598 beautify query concatenates USING keyword to table name
  • Bug #58603 Replace WB CE COPYING file
  • Bug #58704 Out of Memory
  • Bug #58812 ‘Message Log’ box doesn’t appear while forward ingeneer

New in MySQL Workbench 5.2.30 Revision 6790 (Nov 26, 2010)

  • Improved/new:
  • added Text-Formatting-Plugin in SQL-Editor to help format SQL-Queries
  • Closed:
  • Bug #57944 Path delimiter in default Export Directory Path is mixed (“\” and “/”)
  • Bug #57927 Import SQL Script: Pasting valid windows path generates error
  • Bug #57470 Adding foreign key referencing non-existent table causes segfault
  • Bug #57428 Background and title are both black, so it’s not possible to read
  • Bug #57384 Safe Update Feature Fails to See Where Clause
  • Bug #57379 Export recordset to an external file fail (add ubuntu 10.10 pkgs)
  • Bug #57378 Forward Enginner SQL Create Script generates “;” before “create user”
  • Bug #57137 Cannot close tab
  • Bug #57101 Include SSL as a valid connection method
  • Bug #56629 Add a feature to search and replace within a selected range as exists in QB
  • Bug #56625 Cannot change diagram Name in Model -> Diagram Properties and Size
  • Bug #56159 safe mode toggle requires restart
  • Bug #55750 Provide meaningful diagnostics when exception encountered
  • Bug #55620 data type will get blank and ignored
  • Bug #55500 Workbench fails to load sakila database
  • Bug #55447 Model Synchronization: Changed column order is not saved to database
  • Bug #55219 Foreign key not updated on deleting a reference column
  • Bug #54923 Cannot move column (no reorder SQL generated)
  • Bug #52048 Server instance manager cannot update SSH certificate file once it is entered
  • Bug #51462 Command “Delete selected column” can be misunderstood

New in MySQL Workbench 5.2.29 (Nov 26, 2010)

  • Improved/new:
  • added document-auto-save feature including setting in preferences to adjust/disable
  • Closed:
  • Bug #57259 Workbench has encountered ..
  • Bug #57150 after closing the report a bug message, I got his message and unable to close it
  • Bug #57080 insecure library loading vulnerability
  • Bug #57026 Changes in Manager Server Instance not saved on Mac OS X
  • Bug #56874 Cannot open connection unless ssh logon is working
  • Bug #56833 SQL sript obtained using MySQL GUI Tools is miss-interpreted in MySQL Workbench
  • Bug #56718 Need an auto save feature and system recovery feature in case of crash
  • Bug #56658 Float division error when trying to dump database
  • Bug #56170 Server disconnect causes “External component has thrown an exception”
  • Bug #55155 unnecessary foreign key synchonization
  • Bug #54471 Alter Table Foreign Key tab/Foreign Key Optins -> Index: INVALID
  • Bug #55358 Iterate statement folding does not work
  • Bug #55661 Workbench overwrites VIEW code when two views have same name
  • Bug #55851 LONG VARCHAR INCORECT HANDLED
  • Bug #55863 “Bird’s Eye” visible but diagram window not updated
  • Bug #56183 mydb default db: 1] Use, 2] Incorrect default inclusion & 3] Selection of db
  • Bug #56295 Workbench: Edit script: failing to execute script with “Create database” stmt
  • Bug #56518 In modeling mode, on the Table properties panel – has “raplaced”
  • Bug #56534 Czech graphic accent
  • Bug #56597 TRUNCATE command triggers ‘safe updates’ warning
  • Bug #56626 wb snippets disappear and cause crash of wb
  • Bug #56710 Varchar User Defined Type bug at forward engineer of insert row
  • Bug #56876 “Edit Table” (or Edit in new window) does not show table at bottom
  • Bug #56906 Alter table window does not create indexes
  • Bug #56938 model synchronise will delete unticked database
  • Bug #56963 Workbench crashes on new model / new EER
  • Bug #57139 Workbench encountered a bug (againagainagain)
  • Bug #57346 MySQL Workbench Unexpected Error when attempting to edit Inserts

New in MySQL Workbench 5.2.28 (Sep 21, 2010)

  • scripting shell improved, script-editor added
  • additional cmd-line parameters added for scripting purposes

New in MySQL Workbench 5.2.27 (Sep 1, 2010)

  • Bug #40997 Workbench not highlighting foreign key relationship in EER Diagram
  • Bug #43786 validation should catch empty tables
  • Bug #44243 DEFAULT NULL not permitted for INT fields
  • Bug #48873 Add ‘browse’ button for ssh key file (server connections)
  • Bug #49045 Fix order of storage engines in CREATE TABLE drop-down
  • Bug #49143 When pressing “new” in connection manager, connection should be editable
  • Bug #49144 Window titles do not match invoking links titles
  • Bug #49148 “Home” tab icons and icon bar vanish when closing EER tab
  • Bug #49338 content of README file
  • Bug #49382 “Addons” does nothing
  • Bug #49390 Query execution time not shown
  • Bug #49433 Display too small in Routines tab in Routine Group editor
  • Bug #49582 Wrong tab activated when loading diagram
  • Bug #49917 Need labels on Modeling tabs
  • Bug #49923 Admin Logs Server Log File needs more helpful description
  • Bug #49924 Apply Config Changes Dialog too sparse
  • Bug #49928 Ambiguous test connection message
  • Bug #49929 No refresh after object creates
  • Bug #49930 Screen design for Export Data
  • Bug #50203 Server admin can’t be started when using 32-bit MySQL on 64-bit Windows
  • Bug #50459 “Copy Column Names” feature from Query Browser Missing in Workbench
  • Bug #51331 Query editor loses focus when executing query
  • Bug #51438 Change was left off in latest build?
  • Bug #51709 No possibility anymore inside SQL Editor to obtain a create table statement
  • Bug #52687 typo in CREATE NEW SERVER INSTANCE PROFILE
  • Bug #52929 Not possible to use ALT+SHIFT in SQL Editor
  • Bug #53037 Delete FK-Columns deletes columns participating in other relationships
  • Bug #53326 Feature Request: Field viewer default tab should be “Text” instead of “Binary”
  • Bug #53364 Deleting a snippet name in the list does not delete the snippet code contents
  • Bug #53732 German grammar in english home overview
  • Bug #54892 Synchronize Schema wizard blocks on Select Schemata
  • Bug #55112 Can’t add files to Bug Report
  • Bug #55210 crash
  • Bug #55774 Exception = System.ArgumentOutOfRangeException Message
  • Bug #55776 System.NullReferenceException|Object reference not set to an instance
  • Bug #55828 External component has thrown an exception
  • Bug #55867 SQL Editor isn’t upward compatible
  • Bug #55891 Syntax Highlighter marks PARTITION Statement as error
  • Bug #55914 Inadequate documentation on storing passwords in some keyring

New in MySQL Workbench 5.2.26 (Aug 10, 2010)

  • Bug #38432 Paste table menu disabled between schema selection
  • Bug #47892 Prompt for SSH password if no password is given (ssh connections)
  • Bug #49694 Crash executing LOAD DATA LOCAL INFILE
  • Bug #50029 Garbled display
  • Bug #52530 Workbench slow to connect to Server Administration
  • Bug #53661 Workbench stops working when loading external file with arround 70,000 Rows
  • Bug #53734 Alter routine editor
  • Bug #54176 Can’t change final PK sequence before forward engineering
  • Bug #54217 Cannot connect to remote server
  • Bug #54322 UTF BOM from .qbquery files not parsed – results in illegal query
  • Bug #54363 Forward engineer ALTER sql script
  • Bug #54428 MySQL Workbench zoom buttons work, but generate error
  • Bug #54622 OverviewBE:get_node:invalid node 0.0.1 on Workbench Open
  • Bug #54663 Optionalities (circles) have different sizes on both relationships ends
  • Bug #54680 Model Inserts of Binary Data Not Forward Engineered
  • Bug #54822 SQL Editor:Object Browser-Send to SQL Editor the script is not complete
  • Bug #54831 Multi statement SQL does not work
  • Bug #54833 Cairo config not getting to grt library makefile
  • Bug #54844 set_opacity calls in library/form/gtk incompatible with gtk 2.10 on RHEL5
  • Bug #54868 SQL_CALC_FOUND_ROWS and FOUND_ROWS() do not work in SQL Editor
  • Bug #54891 SQL Editor Database overview tab panel coredumps when lots of DB’s
  • Bug #54918 Crash on minimize while loading document
  • Bug #54933 Workbench Server Admin doesn’t parse my.cnf file correctly
  • Bug #54936 segfault after placing relationship with existing columns then zooming
  • Bug #55076 Workbench crashes using modeling exclusion filter
  • Bug #55081 “Forward Engineer SQL ALTER Script” generates wrong alter statement
  • Bug #55117 Action area in Output window does not have a scrollbar
  • Bug #55127 SQL_MODE set to
  • Bug #55133 Error on first opening a newly created connection
  • Bug #55134 Date displayed as a BLOB in WB v5.2.25
  • Bug #55160 Drop Routine from UI leaves icons in object browser
  • Bug #55174 Schematalist in Synchronize wizard is not cleared
  • Bug #55218 Exception error
  • Bug #55300 importing of DBDesigner4 model crashes
  • Bug #55334 Problem creating fields CHAR on TABLE WHEN done Synchronize Model
  • Bug #55390 Unexpected Error – External component has thrown an error
  • Bug #55484 All saved connections lost
  • Bug #55619 Existing indexes will be ignored on creating foreign keys
  • Bug #55684 Table editor doesn’t show up in current window

New in MySQL Workbench 5.2.25 (Jul 16, 2010)

  • Bug #31921 Feature request: detection of two auto_increment columns in one table
  • Bug #31923 Feature request: support charset for schemata (also bug -> SQL CREATE script)
  • Bug #31978 Feature request: detect conflicting ENUM(‘one’, ‘two’) DEFAULT ‘three’
  • Bug #31979 Quote default values when needed or make validation tell the user to do so
  • Bug #33233 Layers/notes cannot display utf8 (japanese) text
  • Bug #34213 Import -> Reverse Engineer SQL Script creates tables but do not display
  • Bug #34733 Physical Schemata > Tables Tab: Tables listed in random order
  • Bug #34864 Inconsistent naming of the “Text” object
  • Bug #35128 Select multiple objects with shift/ctrl key
  • Bug #35156 “Align objects to grid” setting is not remembered when application is restarted
  • Bug #35198 Printing gives no option to select print devicw
  • Bug #35323 Missing data types: POINT
  • Bug #36516 user type UI lacking
  • Bug #36978 in “export SQL” feature triggers block placed below inserting data
  • Bug #38574 Mouse hover over column definition doesn’t show DEFAULT definition
  • Bug #38616 Foreign Key Menu Sort Order
  • Bug #38803 UNSIGNED flag should be visible as checkbox like AI currently is
  • Bug #39517 Variables in default connector caption creation settings enhancement.
  • Bug #39929 Forward Engineer SQL Create Script generates code with errors for procedures
  • Bug #41939 Button order in toolbar wrong (relationships)
  • Bug #44341 Ignoring Foreign Keys when exporting SQL
  • Bug #45199 No refresh for Schemata View
  • Bug #45453 Database | Manage Connections | Test Connection appears to do nothing
  • Bug #45535 Database Connection Wizard Issue
  • Bug #45557 Only possible to edit one table / routine at a time
  • Bug #47437 Copy/Paste does not work in dialogs
  • Bug #48424 Forward Engineer does not escape usernames
  • Bug #48798 Add support for Ctrl+T/Cmd+T to open another query editor
  • Bug #49040 WB “Use new routines” option is misleading
  • Bug #49049 “Alter” and “drop” should not be options for right-clicking on “add table”
  • Bug #49310 Live editor limits to 1000 rows, no way to page further or define length?
  • Bug #49316 Missing icon for Explain
  • Bug #49340 Changelog not up to date
  • Bug #49538 Model Validation flags Boolean as invalid
  • Bug #49941 Double-clicking a workbench file crashes Workbench on launch
  • Bug #50975 MySQL Workbench title bar disappears when window is maximized and menu invoked
  • Bug #51929 Unnecessary Sync Updates
  • Bug #51991 Messed up Results window in query editor
  • Bug #52648 Workbench OverviewBE::get_node:invalid node 0.0.0
  • Bug #53449 No way to turn innodb_support_xa parameter to FALSE/TRUE
  • Bug #53749 Reordering columns doesn’t work properly
  • Bug #54244 Forward Engineer Save to File contains extra carriage returns
  • Bug #54272 Forward Engineer generates SQL statements with redundant carriage returns.
  • Bug #54426 Export to Backup Project folder export triggers twice
  • Bug #54601 printing landscape in pdf shows only half diagram
  • Bug #54639 MySQL Workbench does not preserve inserted data from 5.1 model
  • Bug #54740 wrong ADD / DROP INDEX pair on db sync
  • Bug #54754 “SQL Script has Unsaved Changes” is annoying
  • Bug #54857 Context menu item “Edit in New Window” is disabled in ERR Diagram

New in MySQL Workbench 5.2.24 RC3 (Jun 22, 2010)

  • Data Modeling
  • Query (replaces the old MySQL Query Browser)
  • Administration (replaces the old MySQL Administrator)

New in MySQL Workbench 5.2.21 RC (May 13, 2010)

  • includes many improvements and fixes for 62 bugs.

New in MySQL Workbench 5.2.20 Beta 10 (Apr 28, 2010)

  • new fixes for 49 bugs (P1 - 1, P2 - 7 , P3 - 39, P4 - 2)
  • a few new tips you might try. Some have been in the last 2 betas - but in case you haven't noticed: Once connected in SQL Editor - type control-T or command-T to add a new editor Tab In the SQL Editor run a select.
  • Highlight a cell (one with an image blob preferably) and right click (or command click) and select "Open Value in Viewer" or another option. In a results set -- select multiple rows -- right click and "copy row content" Click on snippets

New in MySQL Workbench 5.2.17 Beta 7 (Apr 4, 2010)

  • Fixes for 69 bugs:
  • P1 -4, P2 – 21 , P3 – 41 and P4 – 3.
  • New Windows UI components.
  • New “look” for windows version
  • Modern style tab-controls.
  • New UI, toolbars and sidebar-placements
  • Easier to use
  • Improved look and feel
  • Distinct User Snippets
  • Pre-Loaded DML and DDL Snippet Libraries
  • SQL Editor:
  • All DDL Statements for changes are available.
  • Results menu bar
  • In Output:
  • added Details Pane for Action and Message