Bugs fixed (continued from part 1): * Creating a foreign key on an InnoDB table that was created with an explicit AUTO_INCREMENT value caused that value to be reset to 1. (Bug#34920: http://bugs.mysql.com/34920)
* mysqldump failed to return an error code when using the --master-data option without binary logging being enabled on the server. (Bug#34909: http://bugs.mysql.com/34909) * Under some circumstances, the value of mysql_insert_id() following a SELECT ... INSERT statement could return an incorrect value. This could happen when the last SELECT ... INSERT did not involve an AUTO_INCREMENT column, but the value of mysql_insert_id() was changed by some previous statements. (Bug#34889: http://bugs.mysql.com/34889) * Table and database names were mixed up in some places of the subquery transformation procedure. This could affect debugging trace output and further extensions of that procedure. (Bug#34830: http://bugs.mysql.com/34830) * If fsync() returned ENOLCK, InnoDB could treat this as fatal and cause abnormal server termination. InnoDB now retries the operation. (Bug#34823: http://bugs.mysql.com/34823) * A malformed URL used for a FEDERATED table's CONNECTION option value in a CREATE TABLE statement was not handled correctly and could crash the server. (Bug#34788: http://bugs.mysql.com/34788) * Using NAME_CONST() with a negative number and an aggregate function caused MySQL to crash. This could also have a negative impact on replication. (Bug#34749: http://bugs.mysql.com/34749) * A memory-handling error associated with use of GROUP_CONCAT() in subqueries could result in a server crash. (Bug#34747: http://bugs.mysql.com/34747) * For an indexed integer column col_name and a value N that is one greater than the maximum value allowed for the data type of col_name, conditions of the form WHERE col_name < N failed to return rows where the value of col_name is N - 1. (Bug#34731: http://bugs.mysql.com/34731) * Executing a TRUNCATE statement on a table having both a foreign key reference and a DELETE trigger crashed the server. (Bug#34643: http://bugs.mysql.com/34643) * Some subqueries using an expression that included an aggregate function could fail or in some cases lead to a crash of the server. (Bug#34620: http://bugs.mysql.com/34620) * Creating a view inside a stored procedure could lead to a crash of the MySQL Server. (Bug#34587: http://bugs.mysql.com/34587) * CAST(AVG(arg) AS DECIMAL) produced incorrect results for non-DECIMAL arguments. (Bug#34512: http://bugs.mysql.com/34512) * Executing an ALTER VIEW statement on a table crashed the server. (Bug#34337: http://bugs.mysql.com/34337) * InnoDB could crash if overflow occurred for an AUTO_INCREMENT column. (Bug#34335: http://bugs.mysql.com/34335) * For InnoDB, exporting and importing a table could corrupt TINYBLOB columns, and a subsequent ALTER TABLE could corrupt TINYTEXT columns as well. (Bug#34300: http://bugs.mysql.com/34300) * DEFAULT 0 was not allowed for the YEAR data type. (Bug#34274: http://bugs.mysql.com/34274) * Under some conditions, a SET GLOBAL innodb_commit_concurrency or SET GLOBAL innodb_autoextend_increment statement could fail. (Bug#34223: http://bugs.mysql.com/34223) * Use of stored functions in the WHERE clause for SHOW OPEN TABLES caused a server crash. (Bug#34166: http://bugs.mysql.com/34166) * Passing anything other than a integer to a LIMIT clause in a prepared statement would fail. (This limitation was introduced to avoid replication problems; for example, replicating the statement with a string argument would cause a parse failure in the slave). Now, arguments to the LIMIT clause are converted to integer values, and these converted values are used when logging the statement. (Bug#33851: http://bugs.mysql.com/33851) * An internal buffer in mysql was too short. Overextending it could cause stack problems or segmentation violations on some architectures. (This is not a problem that could be exploited to run arbitrary code.) (Bug#33841: http://bugs.mysql.com/33841) * A query using WHERE (column1='string1' AND column2=constant1) OR (column1='string2' AND column2=constant2), where col1 used a binary collation and string1 matched string2 except for case, failed to match any records even when matches were found by a query using the equivalent clause WHERE column2=constant1 OR column2=constant2. (Bug#33833: http://bugs.mysql.com/33833) * Large unsigned integers were improperly handled for prepared statements, resulting in truncation or conversion to negative numbers. (Bug#33798: http://bugs.mysql.com/33798) * Reuse of prepared statements could cause a memory leak in the embedded server. (Bug#33796: http://bugs.mysql.com/33796) * The server crashed when executing a query that had a subquery containing an equality X=Y where Y referred to a named select list expression from the parent select. The server crashed when trying to use the X=Y equality for ref-based access. (Bug#33794: http://bugs.mysql.com/33794) * Some queries using a combination of IN, CONCAT(), and an implicit type conversion could return an incorrect result. (Bug#33764: http://bugs.mysql.com/33764) * In some cases a query that produced a result set when using ORDER BY ASC did not return any results when this was changed to ORDER BY DESC. (Bug#33758: http://bugs.mysql.com/33758) * Disabling concurrent inserts caused some cacheable queries not to be saved in the query cache. (Bug#33756: http://bugs.mysql.com/33756) * The UPDATE statement allowed NULL to be assigned to NOT NULL columns (the default data type value was assigned). An error occurs now. (Bug#33699: http://bugs.mysql.com/33699) * ORDER BY ... DESC sorts could produce misordered results. (Bug#33697: http://bugs.mysql.com/33697) * The server could crash when REPEAT or another control instruction was used in conjunction with labels and a LEAVE instruction. (Bug#33618: http://bugs.mysql.com/33618) * The parser allowed control structures in compound statements to have mismatched beginning and ending labels. (Bug#33618: http://bugs.mysql.com/33618) * make_binary_distribution passed the --print-libgcc-file option to the C compiler, but this does not work with the ICC compiler. (Bug#33536: http://bugs.mysql.com/33536) * Threads created by the event scheduler were incorrectly counted against the max_connections thread limit, which could lead to client lockout. (Bug#33507: http://bugs.mysql.com/33507) * Dropping a function after dropping the function's creator could cause the server to crash. (Bug#33464: http://bugs.mysql.com/33464) * Certain combinations of views, subselects with outer references and stored routines or triggers could cause the server to crash. (Bug#33389: http://bugs.mysql.com/33389) * SET GLOBAL myisam_max_sort_file_size=DEFAULT set myisam_max_sort_file_size to an incorrect value. (Bug#33382: http://bugs.mysql.com/33382) See also Bug#31177: http://bugs.mysql.com/31177 * For InnoDB tables, there was a race condition involving the data dictionary and repartitioning. (Bug#33349: http://bugs.mysql.com/33349) * Loading plugins via command-line options to mysqld could cause an assertion failure. (Bug#33345: http://bugs.mysql.com/33345) * SLEEP(0) failed to return on 64-bit Mac OS X due to a bug in pthread_cond_timedwait(). (Bug#33304: http://bugs.mysql.com/33304) * Using Control-R in the mysql client caused it to crash. (Bug#33288: http://bugs.mysql.com/33288) * Granting the UPDATE privilege on one column of a view caused the server to crash. (Bug#33201: http://bugs.mysql.com/33201) * For DECIMAL columns used with the ROUND(X,D) or TRUNCATE(X,D) function with a non-constant value of D, adding an ORDER BY for the function result produced misordered output. (Bug#33143: http://bugs.mysql.com/33143) See also Bug#33402: http://bugs.mysql.com/33402, Bug#30617: http://bugs.mysql.com/30617 * The CSV engine did not honor update requests for BLOB columns when the new column value had the same length as the value to be updated. (Bug#33067: http://bugs.mysql.com/33067) * After receiving a SIGHUP signal, the server could crash, and user-specified log options were ignored when reopening the logs. (Bug#33065: http://bugs.mysql.com/33065) * When MySQL was built with OpenSSL, the SSL library was not properly initialized with information of which endpoint it was (server or client), causing connection failures. (Bug#33050: http://bugs.mysql.com/33050) * Under some circumstances a combination of aggregate functions and GROUP BY in a SELECT query over a view could lead to incorrect calculation of the result type of the aggregate function. This in turn could lead to incorrect results, or to crashes on debug builds of the server. (Bug#33049: http://bugs.mysql.com/33049) * For DISTINCT queries, 4.0 and 4.1 stopped reading joined tables as soon as the first matching row was found. However, this optimzation was lost in MySQL 5.0, which instead read all matching rows. This fix for this regression may result in a major improvement in performance for DISTINCT queries in cases where many rows match. (Bug#32942: http://bugs.mysql.com/32942) * Repeated creation and deletion of views within prepared statements could eventually crash the server. (Bug#32890: http://bugs.mysql.com/32890) See also Bug#34587: http://bugs.mysql.com/34587 * In some cases where setting a system variable failed, no error was sent to the client, causing the client to hang. (Bug#32757: http://bugs.mysql.com/32757) * Enabling the PAD_CHAR_TO_FULL_LENGTH SQL mode caused privilege-loading operations (such as FLUSH PRIVILEGES) to include trailing spaces from grant table values stored in CHAR columns. Authentication for incoming connections failed as a result. Now privilege loading does not include trailing spaces, regardless of SQL mode. (Bug#32753: http://bugs.mysql.com/32753) * The SHOW ENGINE INNODB STATUS and SHOW ENGINE INNODB MUTEX statements incorrectly required the SUPER privilege rather than the PROCESS privilege. (Bug#32710: http://bugs.mysql.com/32710) * Tables in the mysql database that stored the current sql_mode value as part of stored program definitions were not updated with newer mode values (NO_ENGINE_SUBSTITUTION, PAD_CHAR_TO_FULL_LENGTH). This causes various problems defining stored programs if those modes were included in the current sql_mode value. (Bug#32633: http://bugs.mysql.com/32633) * A view created with a string literal for one of the columns picked up the connection character set, but not the collation. Comparison to that field therefore used the default collation for that character set, causing an error if the connection collation was not compatible with the default collation. The problem was caused by text literals in a view being dumped with a character set introducer even when this was not necessary, sometimes leading to a loss of collation information. Now the character set introducer is dumped only if it was included in the original query. (Bug#32538: http://bugs.mysql.com/32538) See also Bug#21505: http://bugs.mysql.com/21505 * Queries using LIKE on tables having indexed CHAR columns using either of the eucjpms or ujis character sets did not return correct results. (Bug#32510: http://bugs.mysql.com/32510) * Executing a prepared statement associated with a materialized cursor sent to the client a metadata packet with incorrect table and database names. The problem occurred because the server sent the the name of the temporary table used by the cursor instead of the table name of the original table. The same problem occured when selecting from a view, in which case the name of the table name was sent, rather than the name of the view. (Bug#32265: http://bugs.mysql.com/32265) * InnoDB adaptive hash latches could be held too long, resulting in a server crash. This fix may also provide significant performance improvements on systems on which many queries using filesorts with temporary tables are being performed. (Bug#32149: http://bugs.mysql.com/32149) * On Windows, mysqltest_embedded.exe did not properly execute the send command. (Bug#32044: http://bugs.mysql.com/32044) * A variable named read_only could be declared even though that is a reserved word. (Bug#31947: http://bugs.mysql.com/31947) * On Windows, the build process failed with four parallel build threads. (Bug#31929: http://bugs.mysql.com/31929) * Queries testing numeric constants containing leading zeroes against ZEROFILL columns were not evaluated correctly. (Bug#31887: http://bugs.mysql.com/31887) * If an error occurred during file creation, the server sometimes did not remove the file, resulting in an unused file in the filesystem. (Bug#31781: http://bugs.mysql.com/31781) * The mysqld crash handler failed on Windows. (Bug#31745: http://bugs.mysql.com/31745) * The server returned the error message Out of memory; restart server and try again when the actual problem was that the sort buffer was too small. Now an appropriate error message is returned in such cases. (Bug#31590: http://bugs.mysql.com/31590) * A table having an index that included a BLOB or TEXT column, and that was originally created with a MySQL server using version 4.1 or earlier, could not be opened by a 5.1 or later server. (Bug#31331: http://bugs.mysql.com/31331) * The -, *, and / operators and the functions POW() and EXP() could misbehave when used with floating-point numbers. Previously they might return +INF, -INF, or NaN in cases of numeric overflow (including that caused by division by zero) or when invalid arguments were used. Now NULL is returned in all such cases. (Bug#31236: http://bugs.mysql.com/31236) * The mysql_change_user() C API function caused global Com_xxx status variable values to be incorrect. (Bug#31222: http://bugs.mysql.com/31222) * When sorting privilege table rows, the server treated escaped wildcard characters (\% and \_) the same as unescaped wildcard characters (% and _), resulting in incorrect row ordering. (Bug#31194: http://bugs.mysql.com/31194) * An assertion failure occurred for queries containing two subqueries if both subqueries were evaluated using a semi-join strategy. (Bug#31040: http://bugs.mysql.com/31040) * ROUND(X,D) or TRUNCATE(X,D) for non-constant values of D could crash the server if these functions were used in an ORDER BY that was resolved using filesort. (Bug#30889: http://bugs.mysql.com/30889) * Resetting the query cache by issuing a SET GLOBAL query_cache_size=0 statement caused the server to crash if it concurrently was saving a new result set to the query cache. (Bug#30887: http://bugs.mysql.com/30887) * Manifest problems prevented MySQLInstanceConfig.exe from running on Windows Vista. (Bug#30823: http://bugs.mysql.com/30823) * If an alias was used to refer to the value returned by a stored function within a subselect, the outer select recognized the alias but failed to retrieve the value assigned to it in the subselect. (Bug#30787: http://bugs.mysql.com/30787) * Replication of LOAD DATA INFILE could fail when read_buffer_size was larger than max_allowed_packet. (Bug#30435: http://bugs.mysql.com/30435) * The Table_locks_waited waited variable was not incremented in the cases that a lock had to be waited for but the waiting thread was killed or the request was aborted. (Bug#30331: http://bugs.mysql.com/30331) * The Com_create_function status variable was not incremented properly. (Bug#30252: http://bugs.mysql.com/30252) * mysqld displayed the --enable-pstack option in its help message even if MySQL was configured without --with-pstack. (Bug#29836: http://bugs.mysql.com/29836) * The mysql_config command would output CFLAGS values that were incompatible with C++ for the HP-UX platform. (Bug#29645: http://bugs.mysql.com/29645) * Replication crashed with the NDB storage engine when mysqld was started with --character-set-server=ucs2. (Bug#29562: http://bugs.mysql.com/29562) * Views were treated as insertable even if some base table columns with no default value were omitted from the view definition. (This is contrary to the condition for insertability that a view must contain all columns in the base table that do not have a default value.) (Bug#29477: http://bugs.mysql.com/29477) * myisamchk always reported the character set for a table as latin1_swedish_ci (8) regardless of the table' actual character set. (Bug#29182: http://bugs.mysql.com/29182) * InnoDB could return an incorrect rows-updated value for UPDATE statements. (Bug#29157: http://bugs.mysql.com/29157) * The MySQL preferences pane did not work to start or stop MySQL on Mac OS X 10.5 (Leopard). (Bug#28854: http://bugs.mysql.com/28854) * For upgrading to a new major version using RPM packages (such as 4.1 to 5.0), if the installation procedure found an existing MySQL server running, it could fail to shut down the old server, but also erroneously removed the server's socket file. Now the procedure checks for an existing server package from a different vendor or major MySQL version. In such case, it refuses to install the server and recommends how to safely remove the old packages before installing the new ones. (Bug#28555: http://bugs.mysql.com/28555) * mysqlhotcopy silently skipped databases with names consisting of two alphanumeric characters. (Bug#28460: http://bugs.mysql.com/28460) * No information was written to the general query log for the COM_STMT_CLOSE, COM_STMT_RESET, and COM_STMT_SEND_LONG_DATA commands. (These occur when a client invokes the mysql_stmt_close(), mysql_stmt_reset() and mysql_stmt_send_long_data() C API functions.) (Bug#28386: http://bugs.mysql.com/28386) * Previously, the parser accepted the ODBC { OJ ... LEFT OUTER JOIN ...} syntax for writing left outer joins. The parser now allows { OJ ... } to be used to write other types of joins, such as INNER JOIN or RIGHT OUTER JOIN. This helps with compatibility with some third-party applications, but is not official ODBC syntax. (Bug#28317: http://bugs.mysql.com/28317) * The SQL parser did not accept an empty UNION=() clause. This meant that, when there were no underlying tables specified for a MERGE table, SHOW CREATE TABLE and mysqldump both output statements that could not be executed. Now it is possible to execute a CREATE TABLE or ALTER TABLE statement with an empty UNION=() clause. However, SHOW CREATE TABLE and mysqldump do not output the UNION=() clause if there are no underlying tables specified for a MERGE table. This also means it is now possible to remove the underlying tables for a MERGE table using ALTER TABLE ... UNION=(). (Bug#28248: http://bugs.mysql.com/28248) * The utf8_general_ci collation incorrectly did not sort "U+00DF SHARP S" equal to 's'. (Bug#27877: http://bugs.mysql.com/27877) * It was possible to exhaust memory by repeatedly running index_merge queries and never performing any FLUSH TABLES statements. (Bug#27732: http://bugs.mysql.com/27732) * When utf8 was set as the connection character set, using SPACE() with a non-Unicode column produced an error. (Bug#27580: http://bugs.mysql.com/27580) See also Bug#23637: http://bugs.mysql.com/23637 * The parser rules for the SHOW PROFILE statement were revised to work with older versions of bison. (Bug#27433: http://bugs.mysql.com/27433) * resolveip failed to produce correct results for hostnames that begin with a digit. (Bug#27427: http://bugs.mysql.com/27427) * In ORDER BY clauses, mixing aggregate functions and non-grouping columns is not allowed if the ONLY_FULL_GROUP_BY SQL mode is enabled. However, in some cases, no error was thrown because of insufficient checking. (Bug#27219: http://bugs.mysql.com/27219) * Memory corruption, a crash of the MySQL server, or both, could take place if a low-level I/O error occurred while an ARCHIVE table was being opened. (Bug#26978: http://bugs.mysql.com/26978) * SHOW PROFILE hung if executed before enabling the @@profiling session variable. (Bug#26938: http://bugs.mysql.com/26938) * config-win.h unconditionally defined bool as BOOL, causing problems on systems where bool is 1 byte and BOOL is 4 bytes. (Bug#26461: http://bugs.mysql.com/26461) * On Windows, for distributions built with debugging support, mysql could crash if the user typed Control-C. (Bug#26243: http://bugs.mysql.com/26243) * When symbolic links were disabled, either with a server startup option or by enabling the NO_DIR_IN_CREATE SQL mode, CREATE TABLE silently ignored the DATA DIRECTORY and INDEX DIRECTORY table options. Now the server issues a warning if symbolic links are disabled when these table options are used. (Bug#25677: http://bugs.mysql.com/25677) * Attempting to create an index with a prefix on a DECIMAL column appeared to succeed with an inaccurate warning message. Now, this action fails with the error Incorrect prefix key; the used key part isn't a string, the used length is longer than the key part, or the storage engine doesn't support unique prefix keys. (Bug#25426: http://bugs.mysql.com/25426) * mysqlcheck -A -r did not correctly identify all tables that needed repairing. (Bug#25347: http://bugs.mysql.com/25347) * The Qcache_free_blocks status variable did not display a value of 0 if the query cache was disabled. (Bug#25132: http://bugs.mysql.com/25132) * The client library had no way to return an error if no connection had been established. This caused problems such as mysql_library_init() failing silently if no errmsg.sys file was available. (Bug#25097: http://bugs.mysql.com/25097) * On Mac OS X, the StartupItem for MySQL did not work. (Bug#25008: http://bugs.mysql.com/25008) * mysql did not use its completion table. Also, the table contained few entries. (Bug#24624: http://bugs.mysql.com/24624) * Logging of statements to log tables was incorrect for statements that contained utf8-incompatible binary strings. Incompatible sequences are hex-encoded now. (Bug#23924: http://bugs.mysql.com/23924) * The MySQL header files contained some duplicate macro definitions that could cause compilation problems. (Bug#23839: http://bugs.mysql.com/23839) * SHOW COLUMNS on a TEMPOARY table caused locking issues. (Bug#23588: http://bugs.mysql.com/23588) * For distributions compiled with the bundled libedit library, there were difficulties using the mysql client to enter input for non-ASCII or multi-byte characters. (Bug#23097: http://bugs.mysql.com/23097) * perror reported incomplete or inaccurate information. (Bug#23028: http://bugs.mysql.com/23028, Bug#25177: http://bugs.mysql.com/25177) * InnoDB exhibited thread thrashing with more than 50 concurrent connections under an update-intensive workload. (Bug#22868: http://bugs.mysql.com/22868) * After stopping and starting the event scheduler, disabled events could remain in the execution queue. (Bug#22738: http://bugs.mysql.com/22738) * The server produced a confusing error message when attempting to open a table that required a storage engine that was not loaded. (Bug#22708: http://bugs.mysql.com/22708) * For views or stored programs created with an invalid DEFINER value, the error message was confusing (did not tie the problem to the DEFINER clause) and has been improved. (Bug#21854: http://bugs.mysql.com/21854) * Warnings for deprecated syntax constructs used in stored routines make sense to report only when the routine is being created, but they were also being reported when the routine was parsed for loading into the execution cache. Now they are reported only at routine creation time. (Bug#21801: http://bugs.mysql.com/21801) * Renaming a column that appeared in a foreign key definition did not update that definition with the new column name. This occurred with both referenced and referencing tables. (Bug#21704: http://bugs.mysql.com/21704) * On Mac OS X, mysqld did not react to Ctrl-C when run under gdb, even when run with the --gdb option. (Bug#21567: http://bugs.mysql.com/21567) * CREATE ... SELECT did not always set DEFAULT column values in the new table. (Bug#21380: http://bugs.mysql.com/21380) * mysql_config output did not include -lmygcc on some platforms when it was needed. (Bug#21158: http://bugs.mysql.com/21158) * The BENCHMARK() function, invoked with more than 2147483648 iterations (the size of a signed 32-bit integer), terminated prematurely. (Bug#20752: http://bugs.mysql.com/20752) * MySQLInstanceConfig.exe could lose the innodb_data_home_dir setting when reconfiguring an instance. (Bug#19797: http://bugs.mysql.com/19797) * DROP DATABASE did not drop orphaned FOREIGN KEY constraints. (Bug#18942: http://bugs.mysql.com/18942) * CREATE TABLE allowed 0 as the default value for a TIMESTAMP column when the server was running in NO_ZERO_DATE mode. (Bug#18834: http://bugs.mysql.com/18834) * A SET column whose definition specified 64 elements could not be updated using integer values. (Bug#15409: http://bugs.mysql.com/15409) * If a SELECT calls a stored function in a transaction, and a statement within the function fails, that statement should roll back. Furthermore, if ROLLBACK is executed after that, the entire transaction should be rolled back. Before this fix, the failed statement did not roll back when it failed (even though it might ultimately get rolled back by a ROLLBACK later that rolls back the entire transaction). (Bug#12713: http://bugs.mysql.com/12713) See also Bug#34655: http://bugs.mysql.com/34655 * The parser incorrectly allowed SQLSTATE '00000' to be specified for a condition handler. (This is incorrect because the condition must be a failure condition and '00000' indicates success.) (Bug#8759: http://bugs.mysql.com/8759) -- Kent Boortz, Senior Production Engineer Sun Microsystems Office: +46 19 182931 Mobile: +46 70 2791171 -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]