summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Bug#45800 crash when replacing into a merge table and there is a duplicateV Narayanan2009-07-306-2/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A REPLACE in the MERGE engine is actually a REPLACE into one (FIRST or LAST) of the underlying MyISAM tables. So in effect the server works on the meta data of the MERGE table, while the real insert happens in the MyISAM table. The MERGE table has no index, while MyISAM has a unique index. When a REPLACE into a MERGE table ( and the REPLACE conflicts with a duplicate in a child table) is done, we try to access the duplicate key information for the MERGE table. This information actually does not exist, hence this results in a crash. The problem can be resolved by modifying the MERGE engine to provide us the duplicate key information directly, instead of just returning the MyISAM index number as the error key. Then the SQL layer (or "the server") does not try to access the key_info of the MERGE table, which does not exist. The current patch modifies the MERGE engine to provide the position for a record where a unique key violation occurs. include/myisammrg.h: Bug#45800 crash when replacing into a merge table and there is a duplicate Add a member to the st_mymerge_info structure that will store the duplicate key offset in the MERGE table. This offset will be the sum of the record offset of the MyISAM table within the MERGE table and the offset of the record within the MyISAM table. mysql-test/r/merge.result: Bug#45800 crash when replacing into a merge table and there is a duplicate Result file for the test case. mysql-test/t/merge.test: Bug#45800 crash when replacing into a merge table and there is a duplicate Added test case for both REPLACE and INSERT...ON DUPLICATE UPDATE. storage/myisammrg/ha_myisammrg.cc: Bug#45800 crash when replacing into a merge table and there is a duplicate The info method now will process the HA_STATUS_ERRKEY flag and will return the index and the offset of the duplicate key. storage/myisammrg/ha_myisammrg.h: Bug#45800 crash when replacing into a merge table and there is a duplicate Set the HA_DUPLICATE_POS flag to indicate that the duplicate key information is now available in the MERGE storage engine. storage/myisammrg/myrg_info.c: Bug#45800 crash when replacing into a merge table and there is a duplicate We modify the myrg_status function to return the position of the duplicate key. The duplicate key position in the MERGE table will be the MyISAM file_offset and the offset within the MyISAM table of the start position of the records.
* Bug#44521 Prepared Statement: CALL p() - crashes: `! thd->main_da.is_sent' ↵Kristofer Pettersson2009-07-301-1/+1
| | | | | | failed et.al. Fixed wrong prototype declaration which cased build failure on solaris.
* auto-mergeKristofer Pettersson2009-07-2917-60/+269
|\
| * Auto-merge latest changes from mysql-5.1-bugteamMikael Ronstrom2009-07-291-3/+0
| |\
| | * removing unused array (compiler warning)Guilhem Bichot2009-07-291-3/+0
| | |
| * | Bug#46354, when defining partitions without subpartition definition after ↵Mikael Ronstrom2009-07-293-1/+39
| |/ | | | | | | defining it with the first partition and using list partition caused crash, fixed by more error checks in parser
| * Bug#45829 "CREATE TABLE TRANSACTIONAL PAGE_CHECKSUM ROW_FORMAT=PAGE ↵Guilhem Bichot2009-07-2910-49/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | accepted, does nothing": those keywords do nothing in 5.1 (they are meant for future versions, for example featuring the Maria engine) so they are here removed from the syntax. Adding those keywords to future versions when needed is: - WL#5034 "Add TRANSACTIONA=0|1 and PAGE_CHECKSUM=0|1 clauses to CREATE TABLE" - WL#5037 "New ROW_FORMAT value for CREATE TABLE: PAGE" mysql-test/r/create.result: test that syntax is not accepted mysql-test/t/create.test: test that syntax is not accepted sql/handler.cc: remove ROW_FORMAT=PAGE sql/handler.h: Mark unused objects, but I don't remove them by fear of breaking any plugin which includes this file (see also table.h) sql/lex.h: removing syntax sql/sql_show.cc: removing output of noise keywords in SHOW CREATE TABLE and INFORMATION_SCHEMA.TABLES sql/sql_table.cc: removing TRANSACTIONAL sql/sql_yacc.yy: removing syntax sql/table.cc: removing TRANSACTIONAL, PAGE_CHECKSUM. Their place in the frm file is not reclaimed, for compatibility with older 5.1. sql/table.h: Mark unused objects, but I don't remove them by fear of breaking any plugin which includes this file (and there are several engines which use the content TABLE_SHARE and thus rely on a certain binary layout of this structure).
| * auto-merge mysql-5.1-bugteam (local) --> mysql-5.1-bugteamAlfranio Correia2009-07-285-7/+174
| |\
| | * BUG#41166 stored function requires "deterministic" if binlog_format is ↵Alfranio Correia2009-07-285-7/+174
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "statement" If the log_bin_trust_function_creators option is not defined, creating a stored function requires either one of the modifiers DETERMINISTIC, NO SQL, or READS SQL DATA. Executing a stored function should also follows the same rules if in STATEMENT mode. However, this was not happening and a wrong error was being printed out: ER_BINLOG_ROW_RBR_TO_SBR. The patch makes the creation and execution compatible and prints out the correct error ER_BINLOG_UNSAFE_ROUTINE when a stored function without one of the modifiers above is executed in STATEMENT mode.
* | | Bug#44521 Executing a stored procedure as a prepared statement can sometimes ↵Kristofer Pettersson2009-07-296-56/+172
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cause an assertion in a debug build. The reason is that the C API doesn't support multiple result sets for prepared statements and attempting to execute a stored routine which returns multiple result sets sometimes lead to a network error. The network error sets the diagnostic area prematurely which later leads to the assert when an attempt is made to set a second server state. This patch fixes the issue by changing the scope of the error code returned by sp_instr_stmt::execute() to include any error which happened during the execution. To assure that Diagnostic_area::is_sent really mean that the message was sent all network related functions are checked for return status. libmysqld/lib_sql.cc: * Changed prototype to return success/failure status on net_send_error_packet(), net_send_ok(), net_send_eof(), write_eof_packet(). mysql-test/r/sp_notembedded.result: * Added test case for bug 44521 mysql-test/t/sp_notembedded.test: * Added test case for bug 44521 sql/protocol.cc: * Changed prototype to return success/failure status on net_send_error_packet(), net_send_ok(), net_send_eof(), write_eof_packet(). sql/protocol.h: * Changed prototype to return success/failure status on net_send_error_packet(), net_send_ok(), net_send_eof(), write_eof_packet(). sql/sp_head.cc: * Changed prototype to return success/failure status on net_send_error_packet(), net_send_ok(), net_send_eof(), write_eof_packet().
* | If running the mysql_upgrade test case with Valgrind, the resourceDavi Arnaut2009-07-281-0/+20
| | | | | | | | | | | | | | | | | | consumption (CPU) for upgrading a large log table can be intense. Therefore, truncate the general_log table beforehand if running mysql_upgrade test with Valgrind. mysql-test/t/mysql_upgrade.test: Truncate log table if running with Valgrind.
* | Automerge.Alexey Kopytov2009-07-280-0/+0
|\ \
| * \ Automerge.Alexey Kopytov2009-07-281-2/+11
| |\ \
* | \ \ Automerge.Alexey Kopytov2009-07-281-2/+11
|\ \ \ \
| * \ \ \ Manual merge.Alexey Kopytov2009-07-281-2/+11
| |\ \ \ \ | | | |/ / | | |/| |
| | * | | Bug #45031: invalid memory reads in my_real_read using protocol Alexey Kopytov2009-07-281-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | compression Since uint3korr() may read 4 bytes depending on build flags and platform, allocate 1 extra "safety" byte in the network buffer for cases when uint3korr() in my_real_read() is called to read last 3 bytes in the buffer. It is practically hard to construct a reliable and reasonably small test case for this bug as that would require constructing input stream such that a certain sequence of bytes in a compressed packet happens to be the last 3 bytes of the network buffer. sql/net_serv.cc: Allocate 1 extra "safety" byte in the network buffer for cases when uint3korr() is used to read last 3 bytes in the buffer.
* | | | | Post-merge fix for Bug#43587: Handle failures to execute a statementDavi Arnaut2009-07-271-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | during bootstrap on a embedded server. libmysqld/lib_sql.cc: Handle a failure during bootstrap.
* | | | | Merge from mysql-5.0-bugteam.Davi Arnaut2009-07-271-23/+30
|\ \ \ \ \ | | |_|/ / | |/| | |
| * | | | Bug#20023: mysql_change_user() resets the value of SQL_BIG_SELECTSDavi Arnaut2009-07-271-12/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Post-merge fix: test case could fail due to a conversion of the max_join_size value to a integer. Fixed by preserving the value as a string for comparison purposes. tests/mysql_client_test.c: Preserve max_join_size value as a string instead of converting it to a integer -- value can be larger then the type used.
* | | | | Bug #30102 rename table does corrupt tables with partition files on failure.Anurag Shekhar2009-07-274-42/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One of the tests introduced for this bug was failing because of path size restriction in windows. Moved the test case to a new test which is disabled under windows. mysql-test/r/partition_not_embedded.result: updated test results after removing a test case. mysql-test/r/partition_rename_longfilename.result: Test result for partition_rename_longfilename mysql-test/t/partition_not_embedded.test: Removed the test case which tests renaming partition table such that the file name is 255 char long. mysql-test/t/partition_rename_longfilename.test: Test case to test renaming partition table such that the file name is 255 char long. Moved from partition_no_embedded.
* | | | | merge mysql-5.0-bugteam to mysql-5.1-bugteamSatya B2009-07-270-0/+0
|\ \ \ \ \ | |/ / / /
| * | | | merging with mysql-5.0-bugteamSatya B2009-07-2714-105/+146
| |\ \ \ \
* | \ \ \ \ merging with mysql-5.1-bugteam branchSatya B2009-07-2731-189/+24685
|\ \ \ \ \ \
| * | | | | | BUG#43046: mixed mode switch to row format with temp table leadLuis Soares2009-07-263-16/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to wrong result When using MIXED mode and issuing 'CREATE TEMPORARY TABLE t_tmp', the statement is logged if the current binlogging mode is STATEMENT. This causes the slave to replay the instruction and create the temporary table as well. If there is no switch to ROW mode, and later on a 'DROP TEMPORARY TABLE t_tmp' is issued, then this statement will also be logged and the slave will remove/close the temporary table. However, if there is a switch to ROW mode between the CREATE and DROP TEMPORARY table, the DROP statement will not be logged, leaving the slave with a dangling temporary table. This patch addresses this, by always logging a DROP TEMPORARY TABLE IF EXISTS when in mixed mode and a drop statement is issued for temporary table(s). mysql-test/suite/rpl/r/rpl_temp_table_mix_row.result: Updated result file. mysql-test/suite/rpl/t/rpl_temp_table_mix_row.test: Added test case. sql/sql_table.cc: When dropping table(s) in mixed mode and current statement logging is ROW, builds an extra DROP TEMPORARY TABLE IF EXISTS for temporary tables that are being dropped. Later, it logs the extra drop statement.
| * | | | | | Bug#43587: Putting event_scheduler=1 in init SQL file crashesDavi Arnaut2009-07-246-29/+61
| |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysqld The problem was that enabling the event scheduler inside a init file caused the server to crash upon start-up. The crash occurred because the event scheduler wasn't being initialized before the commands in the init-file are processed. The solution is to initialize the event scheduler before the init file is read. The patch also disables the event scheduler during bootstrap and makes the bootstrap operation robust in the presence of background threads. mysql-test/std_data/init_file.dat: Add test case for Bug#43587 sql/event_scheduler.cc: Signal that the thread_count has been decremented. sql/events.cc: Disable the event scheduler during bootstrap. sql/mysql_priv.h: Export variable. sql/mysqld.cc: Initialize the event scheduler before commands are executed. sql/sql_parse.cc: Signal that the bootstrap thread is done.
| | * | | | | | Code review for Bug#43587 Putting event_scheduler=1 in init SQL file crashes Konstantin Osipov2009-07-246-27/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mysqld
| * | | | | | | Merge from 5.0Gleb Shchepa2009-07-2413-119/+110
| |\ \ \ \ \ \ \ | | |/ / / / / / | |/| | / / / / | | | |/ / / / | | |/| | | | ****** manual merge 5.0-bugteam --> 5.1-bugteam (bug 38816)
| | * | | | | Bug #38816: kill + flush tables with read lock + storedGleb Shchepa2009-07-2410-99/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | procedures causes crashes! The problem of that bugreport was mostly fixed by the patch for bug 38691. However, attached test case focused on another crash or valgrind warning problem: SHOW PROCESSLIST query accesses freed memory of SP instruction that run in a parallel connection. Changes of thd->query/thd->query_length in dangerous places have been guarded with the per-thread LOCK_thd_data mutex (the THD::LOCK_delete mutex has been renamed to THD::LOCK_thd_data). sql/ha_myisam.cc: Bug #38816: kill + flush tables with read lock + stored procedures causes crashes! Modification of THD::query/query_length has been guarded with the a THD::set_query() method call/LOCK_thd_data mutex. Unnecessary locking with the global LOCK_thread_count mutex has been removed. sql/log_event.cc: Bug #38816: kill + flush tables with read lock + stored procedures causes crashes! Modification of THD::query/query_length has been guarded with the THD::set_query()) method call/LOCK_thd_data mutex. sql/slave.cc: Bug #38816: kill + flush tables with read lock + stored procedures causes crashes! Modification of THD::query/query_length has been guarded with the THD::set_query() method call/LOCK_thd_data mutex. The THD::LOCK_delete mutex has been renamed to THD::LOCK_thd_data. sql/sp_head.cc: Bug #38816: kill + flush tables with read lock + stored procedures causes crashes! Modification of THD::query/query_length has been guarded with the a THD::set_query() method call/LOCK_thd_data mutex. sql/sql_class.cc: Bug #38816: kill + flush tables with read lock + stored procedures causes crashes! The new THD::LOCK_thd_data mutex and THD::set_query() method has been added to guard modifications of THD::query/ THD::query_length fields, also the Statement::set_statement() method has been overloaded in the THD class. The THD::LOCK_delete mutex has been renamed to THD::LOCK_thd_data. sql/sql_class.h: Bug #38816: kill + flush tables with read lock + stored procedures causes crashes! The new THD::LOCK_thd_data mutex and THD::set_query() method has been added to guard modifications of THD::query/ THD::query_length fields, also the Statement::set_statement() method has been overloaded in the THD class. The THD::LOCK_delete mutex has been renamed to THD::LOCK_thd_data. sql/sql_insert.cc: Bug #38816: kill + flush tables with read lock + stored procedures causes crashes! Modification of THD::query/query_length has been guarded with the a THD::set_query() method call/LOCK_thd_data mutex. sql/sql_parse.cc: Bug #38816: kill + flush tables with read lock + stored procedures causes crashes! Modification of THD::query/query_length has been guarded with the a THD::set_query() method call/LOCK_thd_data mutex. sql/sql_repl.cc: Bug #38816: kill + flush tables with read lock + stored procedures causes crashes! The THD::LOCK_delete mutex has been renamed to THD::LOCK_thd_data. sql/sql_show.cc: Bug #38816: kill + flush tables with read lock + stored procedures causes crashes! Inter-thread read of THD::query/query_length field has been protected with a new per-thread LOCK_thd_data mutex in the mysqld_list_processes function.
| * | | | | | Automerge.Alexey Kopytov2009-07-240-0/+0
| |\ \ \ \ \ \ | | |/ / / / /
| | * | | | | Automerge.Alexey Kopytov2009-07-243-0/+39
| | |\ \ \ \ \
| | * \ \ \ \ \ merging with mysql-5.0-bugteamV Narayanan2009-07-241-6/+7
| | |\ \ \ \ \ \
| * | \ \ \ \ \ \ Automerge.Alexey Kopytov2009-07-243-0/+39
| |\ \ \ \ \ \ \ \
| | * \ \ \ \ \ \ \ Manual merge.Alexey Kopytov2009-07-243-0/+39
| | |\ \ \ \ \ \ \ \ | | | | |_|/ / / / / | | | |/| | | | | |
| | | * | | | | | | Bug #46075: Assertion failed: 0, file .\protocol.cc, line 416 Alexey Kopytov2009-07-243-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In create_myisam_from_heap() mark all errors as fatal except HA_ERR_RECORD_FILE_FULL for a HEAP table. Not doing so could lead to problems, e.g. in a case when a temporary MyISAM table gets overrun due to its MAX_ROWS limit while executing INSERT/REPLACE IGNORE ... SELECT. The SELECT execution was aborted, but the error was converted to a warning due to IGNORE clause, so neither 'ok' nor 'error' packet could be sent back to the client. This condition led to hanging client when using 5.0 server, or assertion failure in 5.1. mysql-test/r/insert_select.result: Added a test case for bug #46075. mysql-test/t/insert_select.test: Added a test case for bug #46075. sql/sql_select.cc: In create_myisam_from_heap() mark all errors as fatal except HA_ERR_RECORD_FILE_FULL for a HEAP table.
| * | | | | | | | | merging with local branch.Anurag Shekhar2009-07-244-13/+234
| |\ \ \ \ \ \ \ \ \
| | * | | | | | | | | Bug#30102: Rename table does corrupt tables with partition files on failureAnurag Shekhar2009-07-244-13/+234
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem was that a failing rename just left the partitions at the state it was at the failure. Solution was to try to revert the started rename if a failure occured. mysql-test/r/partition_not_embedded.result: Bug#30102: Rename table does corrupt tables with partition files on failure New result file mysql-test/t/partition_not_embedded.test: Bug#30102: Rename table does corrupt tables with partition files on failure New test file (list_files does not report the files in embedded) sql/ha_partition.cc: Bug#30102: Rename table does corrupt tables with partition files on failure Better error handling for rename partitions (reverting the started rename operation) Different order of files for delete. sql/handler.cc: Bug#30102: Rename table does corrupt tables with partition files on failure Tries to remove as many table files as possible if the first delete succeeds.
| * | | | | | | | | | merging with mysql-5.1-bugteamV Narayanan2009-07-241-7/+7
| |\ \ \ \ \ \ \ \ \ \ | | |/ / / / / / / / / | |/| | | | | | | | |
| | * | | | | | | | | merging with mysql-5.0-bugteamV Narayanan2009-07-171-7/+7
| | |\ \ \ \ \ \ \ \ \ | | | | |_|_|/ / / / / | | | |/| | | | | | |
| | | * | | | | | | | merging with mysql-5.0-bugteamV Narayanan2009-07-171-6/+7
| | | |\ \ \ \ \ \ \ \ | | | | |_|_|_|_|_|/ / | | | |/| | | | | | |
| | | | * | | | | | | Bug#43572 Handle failures from hash_initV Narayanan2009-07-121-6/+7
| | | | | |/ / / / / | | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is a follow up to http://lists.mysql.com/commits/76678. When an allocation failure occurs for the buffer in the dynamic array, an error condition was being set. The dynamic array is usable even if the memory allocation fails. Since in most cases the thread can continue to work without any problems the error condition should not be set here. This patch adds logic to remove the error condition from being set when the memory allocation for the buffer in dynamic array fails. mysys/array.c: Bug#43572 Handle failures from hash_init Remove the MY_WME flag from the call to malloc in order to prevent the error status from being set in the init_dynamic_array method. Since this memory allocation failure is no longer fatal this method has been modified to return FALSE (indicate success) irrespective of array->buffer being allocated.
| * | | | | | | | | Backporting "WL#3332 Korean Enhancements" andAlexander Barkov2009-07-243-5/+24035
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | "WL#4584 New euckr characters" from 5.4. (as agreed on ServerPT meeting on July 8).
* | | | | | | | | | merge 5.0-bugteam to 5.1-bugteamSatya B2009-07-245-13/+11
|\ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / |/| | | | | | / / / | | |_|_|_|_|/ / / | |/| | | | | | |
| * | | | | | | | merge to mysql-5.0-bugteamSatya B2009-07-247-21/+105
| |\ \ \ \ \ \ \ \ | | | |_|_|_|/ / / | | |/| | | | | |
| * | | | | | | | Fix for BUG#18828 - If InnoDB runs out of undo slots, Satya B2009-07-175-12/+10
| | |_|/ / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | it returns misleading 'table is full' Innodb returns a misleading error message "table is full" when the number of active concurrent transactions is greater than 1024. Fixed by adding errorcode "ER_TOO_MANY_CONCURRENT_TRXS" to the error codes. Innodb should return HA_TOO_MANY_CONCURRENT_TRXS to mysql which is then mapped to ER_TOO_MANY_CONCURRENT_TRXS Note: testcase is not written as this was reproducible only by changing innodb code. extra/perror.c: Add error number and message for HA_ERR_TOO_MANY_CONCURRENT_TRXS include/my_base.h: Add error number and message for HA_ERR_TOO_MANY_CONCURRENT_TRXS sql/ha_innodb.cc: Return HA_ERR_TOO_MANY_CONCURRENT_TRXS to mysql server sql/handler.cc: Add error number and message for HA_ERR_TOO_MANY_CONCURRENT_TRXS sql/share/errmsg.txt: Add error message for ER_TOO_MANY_CONCURRENT_TRXS
* | | | | | | | Merge from 5.0Staale Smedseng2009-07-233-21/+56
|\ \ \ \ \ \ \ \ | | |/ / / / / / | |/| | | | | |
| * | | | | | | Bug #45770 errors reading server SSL files are printed, butStaale Smedseng2009-07-233-21/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | not logged Errors encountered during initialization of the SSL subsystem are printed to stderr, rather than to the error log. This patch adds a parameter to several SSL init functions to report the error (if any) out to the caller. The function init_ssl() in mysqld.cc is moved after the initialization of the log subsystem, so that any error messages can be logged to the error log. Printing of messages to stderr has been retained to get diagnostic output in a client context. include/violite.h: Adding an enumeration for the various errors that can occur during initialization of the SSL module. sql/mysqld.cc: Adding more logging of SSL init errors, and moving init_ssl() till after initialization of logging subsystem. vio/viosslfactories.c: Define error strings, provide an access method for these strings, and maintain an error parameter in several funcs to return the error (if any) to the caller.
* | | | | | | | Add a comment for thd->proc_info.Konstantin Osipov2009-07-221-0/+4
| | | | | | | |
* | | | | | | | auto-merge mysql-5.1-bugteam (local) -> mysql-5.1-bugteam.Evgeny Potemkin2009-07-193-38/+45
|\ \ \ \ \ \ \ \
| * \ \ \ \ \ \ \ auto-merge mysql-5.1-bugteam (local) --> mysql-5.1-bugteam Alfranio Correia2009-07-193-38/+45
| |\ \ \ \ \ \ \ \ | | |_|_|/ / / / / | |/| | | | | | |
| | * | | | | | | BUG#46129 Failing mixed stm (with trans and non-trans tables) causes wrong ↵Alfranio Correia2009-07-183-38/+45
| | | |_|_|_|/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | seq in binlog The fix for BUG 43929 introduced a regression issue. In a nutshell, when a statement that changes a non-transactional table fails, it is written to the binary log with the error code appended. Unfortunately, after BUG 43929, this failure was flushing the transactional chace causing mismatch between execution and logging histories. To fix this issue, we avoid flushing the transactional cache when a commit or rollback is not issued.