summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix forRamil Kalimullin2009-01-147-40/+241
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | bug#33094: Error in upgrading from 5.0 to 5.1 when table contains triggers and #41385: Crash when attempting to repair a #mysql50# upgraded table with triggers. Problem: 1. trigger code didn't assume a table name may have a "#mysql50#" prefix, that may lead to a failing ASSERT(). 2. "ALTER DATABASE ... UPGRADE DATA DIRECTORY NAME" failed for databases with "#mysql50#" prefix if any trigger. 3. mysqlcheck --fix-table-name didn't use UTF8 as a default character set that resulted in (parsing) errors for tables with non-latin symbols in their names and definitions of triggers. Fix: 1. properly handle table/database names with "#mysql50#" prefix. 2. handle --default-character-set mysqlcheck option; if mysqlcheck is launched with --fix-table-name or --fix-db-name set default character set to UTF8 if no --default-character-set option given. Note: if given --fix-table-name or --fix-db-name option, without --default-character-set mysqlcheck option default character set is UTF8. client/mysqlcheck.c: Fix for bug#33094: Error in upgrading from 5.0 to 5.1 when table contains triggers and #41385: Crash when attempting to repair a #mysql50# upgraded table with triggers. - check and set default charset if --default-character-set option given. - set default charset to "utf8" if there's --fix-table-name or --fix-db-name and no --default-character-set. mysql-test/r/mysqlcheck.result: Fix for bug#33094: Error in upgrading from 5.0 to 5.1 when table contains triggers and #41385: Crash when attempting to repair a #mysql50# upgraded table with triggers. - test result. mysql-test/t/mysqlcheck.test: Fix for bug#33094: Error in upgrading from 5.0 to 5.1 when table contains triggers and #41385: Crash when attempting to repair a #mysql50# upgraded table with triggers. - test case. sql/mysql_priv.h: Fix for bug#33094: Error in upgrading from 5.0 to 5.1 when table contains triggers and #41385: Crash when attempting to repair a #mysql50# upgraded table with triggers. - check_n_cut_mysql50_prefix() introduced. sql/sql_table.cc: Fix for bug#33094: Error in upgrading from 5.0 to 5.1 when table contains triggers and #41385: Crash when attempting to repair a #mysql50# upgraded table with triggers. - tablename_to_filename() code split into 2 parts - check_n_cut_mysql50_prefix() introduced to cut #mysql50# prefixes, used in the trigger code as well. sql/sql_trigger.cc: Fix for bug#33094: Error in upgrading from 5.0 to 5.1 when table contains triggers and #41385: Crash when attempting to repair a #mysql50# upgraded table with triggers. - Table_triggers_list::check_n_load() - checking triggers assume a table/database name given may have "#mysql50#" prefix in some cases. - Table_triggers_list::change_table_name_in_triggers() - create .TRG file in new database directory and delete it in old one, as they may differ in case of "ALTER DATABASE ... UPGRADE DATA DIRECTORY NAME" - Table_triggers_list::change_table_name_in_trignames() - remove stale .TRN files in #mysql50#dbname directory in case of database upgrade - Table_triggers_list::change_table_name() - allow changing trigger's database in case of its upgrading sql/sql_trigger.h: Fix for bug#33094: Error in upgrading from 5.0 to 5.1 when table contains triggers and #41385: Crash when attempting to repair a #mysql50# upgraded table with triggers. - new old_db_name parameter added in Table_triggers_list::change_table_name_in_trignames() and Table_triggers_list::change_table_name_in_triggers()
* Auto mergeHe Zhenxing2009-01-1456-358/+1322
|\
| * Merge into actual treeMatthias Leich2009-01-1312-170/+567
| |\
| | * Merge of fix for bugMatthias Leich2009-01-132-13/+31
| | | | | | | | | | | | | | | 41776 type_date.test may fail if run around midnight. into GCA tree.
| | * Merge of fix for bugMatthias Leich2009-01-136-69/+339
| | |\ | | | | | | | | | | | | | | | | 41111 events_bugs fails sporadically on pushbuild into GCA tree
| | | * 1. Fix for Bug#41111 events_bugs fails sporadically on pushbuildMatthias Leich2009-01-096-69/+339
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2. Avoid bad effects of bug 41925 Warning 1366 Incorrect string value: ... for column processlist.info 3. Add poll routines which ensure that subtests meet stable scenarios. This does not change the sense of the subtests.
| | * | Merge of fix for bugMatthias Leich2009-01-132-2/+2
| | |\ \ | | | | | | | | | | | | | | | | | | | | 41932 funcs_1: is_collation_character_set_applicability path too long for tar into GCA tree
| | | * | Fix of Bug#41932 funcs_1: is_collation_character_set_applicability path too ↵Matthias Leich2009-01-072-1/+1
| | | | | | | | | | | | | | | | | | | | long for tar
| | * | | Fix for Bug#40377 sporadic pushbuild failure in log_state: result mismatchMatthias Leich2009-01-132-86/+195
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | + add workaround for bug 38124 + messages into the protocol when sessions are switched + replace error numbers by error names + reset of system variables to initial values per subtest + remove a file created by this test + minor improvements in structure and formatting
| * | | | Auto-merge from upstream 5.1-bugteamDavi Arnaut2009-01-1346-199/+822
| |\ \ \ \
| | * | | | Bug#41888: Test binlog.binlog_database causing binlog_innodb to fail on ↵Patrick Crews2009-01-122-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Pushbuild. Added cleanup of status variables to the end of binlog_database. Re-recorded .result file to account for cleanup statement. NOTE: binlog.binlog_innodb also has had an FLUSH STATUS; statement added to it as well, but adding this cleanup as a preventative measure.
| | * | | | Fixed a warning in sql_profile.ccGeorgi Kodinov2009-01-121-2/+2
| | | | | |
| | * | | | merged 41453 to 5.1-bugteamGeorgi Kodinov2009-01-124-3/+57
| | |\ \ \ \
| | | * | | | Bug #41543: Assertion `m_status == DA_ERROR' failed in ↵Georgi Kodinov2009-01-094-3/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Diagnostics_area::sql_errno No need to mask the error code returned by getting the next row to end of file when doing filesort. mysql-test/r/innodb_mysql_rbk.result: Bug #41543: test case mysql-test/t/innodb_mysql_rbk-master.opt: Bug #41543: test case mysql-test/t/innodb_mysql_rbk.test: Bug #41543: test case sql/filesort.cc: Bug #41543: No need to mask the error code returned by getting the next row to end of file when doing filesort.
| | * | | | | Post-merge fix for bug 37016: Update test case for row-based logging.Davi Arnaut2009-01-122-2/+2
| | | |/ / / | | |/| | | | | | | | | | | | | | | | | | | | | mysql-test/r/commit_1innodb.result: Increase commit count for row-based logging.
| | * | | | Bug#31177: Server variables can't be set to their current valuesTatiana A. Nurnberg2009-01-125-10/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bounds-checks and blocksize corrections were applied to user-input, but constants in the server were trusted implicitly. If these values did not actually meet the requirements, the user could not set change a variable, then set it back to the (wonky) factory default or maximum by explicitly specifying it (SET <var>=<value> vs SET <var>=DEFAULT). Now checks also apply to the server's presets. Wonky values and maxima get corrected at startup. Consequently all non-offsetted values the user sees are valid, and users can set the variable to that exact value if they so desire. mysql-test/r/read_buffer_size_basic.result: test sets out of bounds value; we now throw a warning for this. This is a side-effect: before, the maximum was higher than the value we set here. The value was corrected to block-size, the maximum was not, hence the value was smaller than the maximum in this particular case. Now that we align the maxima at startup, the value in SET is larger than the (corrected) maximum, and we see a warning in this particular case. "This means we're doing it right." mysql-test/r/read_rnd_buffer_size_basic.result: test sets out of bounds value; we now throw a warning for this. This is a side-effect: before, the maximum was higher than the value we set here. The value was corrected to block-size, the maximum was not, hence the value was smaller than the maximum in this particular case. Now that we align the maxima at startup, the value in SET is larger than the (corrected) maximum, and we see a warning in this particular case. "This means we're doing it right." mysys/my_getopt.c: Do bounds-checking at start-up time so we'll catch and correct wonky default values and upper limits. sql/mysqld.cc: If 0 is a legal value per the docs, not to mention the default, we shouldn't give 1 as the lower limit. storage/innobase/handler/ha_innodb.cc: We are setting upper bounds here. ~0L gives -1. That is NOT what we want!
| | * | | | auto-mergeTatiana A. Nurnberg2009-01-095-2/+15
| | |\ \ \ \
| | | * \ \ \ merged 5.0-bugteam -> 5.1-bugteamGeorgi Kodinov2009-01-091-1/+1
| | | |\ \ \ \
| | | | * | | | fixed a compile warningGeorgi Kodinov2009-01-091-1/+1
| | | | | | | |
| | | * | | | | merged 41437 to 5.1-bugteamGeorgi Kodinov2009-01-093-0/+13
| | | |\ \ \ \ \ | | | | |/ / / /
| | | | * | | | merged 41437 to 5.0-bugteamGeorgi Kodinov2009-01-093-0/+13
| | | | |\ \ \ \
| | | | | * | | | Bug #41437: Value stored in 'case' lacks charset, causes segfaultGeorgi Kodinov2009-01-093-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When substituting system constant functions with a constant result the server was not expecting that the function may return NULL. Fixed by checking for NULL and returning Item_null (in the relevant collation) if the result of the system constant function was NULL. mysql-test/r/mysql.result: Bug #41437: test case mysql-test/t/mysql.test: Bug #41437: test case. Relies on database() returning NULL if no database is selected. sql/item_strfunc.cc: Bug #41437: Check for NULL result on evaluating the system constant function and return a constant NULL item.
| | | | * | | | | mergePatrick Crews2009-01-074-23/+53
| | | | |\ \ \ \ \ | | | | | |/ / / /
| | | * | | | | | mergeMattias Jonsson2009-01-096-36/+172
| | | |\ \ \ \ \ \
| | | * | | | | | | Bug#40972: Partition pruning can lead to crash for bad datesMattias Jonsson2009-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | post push fix, added test found a valgrind warning sql/sql_partition.cc: Bug#40972: Partition pruning can lead to crash for bad dates Fix for valgrind warning
| | * | | | | | | | auto-mergeTatiana A. Nurnberg2009-01-0928-177/+695
| | |\ \ \ \ \ \ \ \ | | | | |/ / / / / / | | | |/| | | | | |
| | | * | | | | | | BUG#41924: high-level replication functions are not commentedSven Sandberg2009-01-096-36/+172
| | | |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adding comments to some of the high-level functions in replication. sql/log_event.h: Fixed some mistakes in comments. sql/repl_failsafe.cc: Added comment for show_slave_hosts() sql/slave.cc: Added comment for show_master_info(), handle_slave_[sql|io](), and next_event() sql/sql_binlog.cc: Added @param comment. sql/sql_lex.h: Added comment for st_lex_master_info. sql/sql_repl.cc: Added comments for functions executing a statement: PURGE BINARY LOGS START SLAVE STOP SLAVE RESET SLAVE CHANGE MASTER RESET MASTER SHOW BINLOG EVENTS SHOW MASTER STATUS SHOW BINARY LOGS
| | | * | | | | | Merged fix of BUG#41961 in 5.1-bugteam with recent changes in 5.1-bugteamSven Sandberg2009-01-095-25/+137
| | | |\ \ \ \ \ \
| | | | * | | | | | Bug#37016: TRUNCATE TABLE removes some rows but not allDavi Arnaut2009-01-095-25/+137
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The special TRUNCATE TABLE (DDL) transaction wasn't being properly rolled back if a error occurred during row by row deletion. The error can be caused by a foreign key restriction imposed by InnoDB SE and would cause the server to erroneously issue a implicit commit. The solution is to rollback the transaction if a truncation via row by row deletion fails, otherwise commit. All effects of a TRUNCATE ABLE operation are rolled back if a row by row deletion fails. mysql-test/include/commit.inc: Truncate always starts a transaction and commits at the end. The commit at the end increases the count by two, one is the storage engine commit and the other is the binary log. mysql-test/r/commit_1innodb.result: Update test case results. mysql-test/r/innodb_mysql.result: Update test case results. mysql-test/t/innodb_mysql.test: Add test case for Bug#37016 sql/sql_delete.cc: Move truncation using row by row deletion to its own function. If row by row deletion fails, rollback the transaction. Remove the meddling with disabling and enabling of autocommit as TRUNCATE transaction is now explicitly ended (committed or rolled back).
| | | * | | | | | | merge fix of BUG#41961 in 5.1-bugteam with recent changes in 5.1-bugteamSven Sandberg2009-01-0984-293/+524
| | | |\ \ \ \ \ \ \ | | | | |/ / / / / /
| | | | * | | | | | due to merge.Horst Hunger2009-01-095-1/+131
| | | | |\ \ \ \ \ \
| | | | | * \ \ \ \ \ Auto-merge from upstream 5.1-bugteamDavi Arnaut2009-01-089-29/+105
| | | | | |\ \ \ \ \ \ | | | | | | | |_|/ / / | | | | | | |/| | | |
| | | | | * | | | | | Bug#41348: INSERT INTO tbl SELECT * FROM temp_tbl overwritesDavi Arnaut2009-01-075-1/+131
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | locking type of temp table The problem is that INSERT INTO .. SELECT FROM .. and CREATE TABLE .. SELECT FROM a temporary table could inadvertently overwrite the locking type of the temporary table. The lock type of temporary tables should be a write lock by default. The solution is to reset the lock type of temporary tables back to its default value after they are used in a statement. mysql-test/r/innodb_mysql.result: Add test case result for Bug#41348 mysql-test/r/temp_table.result: Add test case result for Bug#41348 mysql-test/t/innodb_mysql.test: Add test case for Bug#41348 mysql-test/t/temp_table.test: Add test case for Bug#41348 sql/sql_base.cc: Allow the lock type of temp tables to be overwritten now that the the value is being restored once the table is marked as free for re-use. This makes the behavior consistent with that of non-temporary tables and avoids confusion.
| | | | * | | | | | | Patch for bug#36875: Inserted review results.Horst Hunger2009-01-085-79/+97
| | | | | |/ / / / / | | | | |/| | | | |
| | | | * | | | | | mergeMattias Jonsson2009-01-083-5/+8
| | | | |\ \ \ \ \ \
| | | | * \ \ \ \ \ \ mergeMattias Jonsson2009-01-071-3/+3
| | | | |\ \ \ \ \ \ \
| | | | | * | | | | | | Bug#36312: InnoDB DATA_FREE BUG?Mattias Jonsson2008-12-191-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem is that DATA_FREE in SHOW TABLE STATUS is not correct when not using innodb_file_per_table. The solution is to use I_S.PARTITIONS instead. This is only a small fix for correcting mean record length and always return 0 if the table is empty. sql/ha_partition.cc: Bug#36312: InnoDB DATA_FREE BUG? This is only a small fix for correcting mean record length and always return 0 if the table is empty.
| | | | * | | | | | | | mergeMattias Jonsson2009-01-073-2/+30
| | | | |\ \ \ \ \ \ \ \
| | | | | * | | | | | | | Bug#40972: some sql execution lead the whole databse crashingMattias Jonsson2008-12-283-2/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem was an errornous date that lead to end partition was before the start, leading to a crash. Solution was to check greater or equal instead of only equal between start and end partition. NOTE: partitioning pruning handles incorrect dates differently than index lookup, which can give different results in a partitioned table versus a non partitioned table for queries having 'bad' dates in the where clause. mysql-test/r/partition_pruning.result: Bug#40972: some sql execution lead the whole databse crashing Updated result file mysql-test/t/partition_pruning.test: Bug#40972: some sql execution lead the whole databse crashing Added test. sql/sql_partition.cc: Bug#40972: some sql execution lead the whole databse crashing There can be cases where the start/cur partition is greater than the end partition, so it must not continue, since that can lead to a crash.
| | | * | | | | | | | | | BUG#41961: Some log_event types do not skip post-header when readingSven Sandberg2009-01-092-8/+54
| | | | |_|_|_|_|_|_|_|/ | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: when the server reads a log_event from file, it should read the post-header lengths from the format_description_log_event. Some event types which currently have post-header length 0 did not do this, and instead had a hard-coded zero length for the post-header. That means the current server version will not be able to read future versions of these events. Fix: make the reader functions read the post-header. sql/log_event.cc: - Made Format_description_log_event constructor initialize all post-header lengths explicitly, to make it easier to find them in the source code. - After this, it is no longer necessary to pass the MY_ZEROFILL flag to my_malloc. I removed the flag and added a sanity-check that will be executed only in debug-mode. - Made INTVAR, RAND, USER_VAR, and XID events skip post_header_len when reading from file. sql/log_event.h: Added explicit defines for the lengths of all event types.
| | * | | | | | | | | | auto-mergeTatiana A. Nurnberg2009-01-093-6/+29
| | |\ \ \ \ \ \ \ \ \ \ | | | |_|_|_|_|_|_|_|_|/ | | |/| | | | | | | | |
| | | * | | | | | | | | Bug#41470: DATE_FORMAT() crashes the complete server with a valid dateTatiana A. Nurnberg2009-01-083-6/+29
| | | | |_|_|_|_|_|_|/ | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Passing dubious "year zero" in non-zero date (not "0000-00-00") could lead to negative value for year internally, while variable was unsigned. This led to Really Bad Things further down the line. Now doing calculations with signed type for year internally. mysql-test/r/date_formats.result: show that very early dates no longer break DATE_FORMAT(..., '%W') mysql-test/t/date_formats.test: show that very early dates no longer break DATE_FORMAT(..., '%W') sql-common/my_time.c: Allow negative years numbers internally while keeping the interface. otherwise if somebody passes year zero for whatever reason, we'll get an integer wrap-around that can lead to Really Bad Things further down the line. Note that amusingly, calcday_nr() already had signed output and calc_weekday() already had signed input, anyway.
| * | | | | | | | | | Bug#41889: Test main.innodb_bug38231 is failing w/embedded server (server crash)Davi Arnaut2009-01-081-11/+3
| |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem is that a mysql connection instance is not thread-safe and reentrant, meaning that it can't be used concurrently and can't be re-entered while it's already running. This applies for any form of the server (embedded or not), but this rule can be violated in a test case if the test sends a new command without waiting for the result of previous command that was sent asynchronously and this can lead to hangs when over a network or to crashes under embedded server as the server query execution path will be re-entered concurrently with the same connection structure. The solution is to rework the test case so that the aforementioned rule is obeyed. mysql-test/t/innodb_bug38231.test: Remove con3 as it is not necessary to reproduce the test case and might cause problems as there is no guarantee on which LOCK TABLE request will succeed first. Also, wait for statement result before sending a new one on the same connection.
* | | | | | | | | | BUG#41986 Replication slave does not pick up proper AUTO_INCREMENT value for ↵He Zhenxing2009-01-143-0/+38
| |_|_|_|_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Innodb tables The next number (AUTO_INCREMENT) field of the table for write rows events are not initialized, and cause some engines (innodb) not correctly update the tables's auto_increment value. This patch fixed this problem by honor next number fields if present. mysql-test/extra/rpl_tests/rpl_auto_increment.test: Add test code for BUG#41986 mysql-test/suite/rpl/r/rpl_auto_increment.result: update test result file for BUG#41986 sql/log_event.cc: set next_number_field before writing rows, and reset next_number_field after finished writing rows
* | | | | | | | | Auto-merge from upstream 5.1-bugteamTimothy Smith2009-01-08112-373/+1427
|\ \ \ \ \ \ \ \ \ | | |_|_|/ / / / / | |/| | | | | | |
| * | | | | | | | mergePatrick Crews2009-01-071-1/+1
| |\ \ \ \ \ \ \ \ | | |/ / / / / / /
| | * | | | | | | fix misspellingVladislav Vaintroub2009-01-071-1/+1
| | | |_|_|_|/ / | | |/| | | | |
| * | | | | | | merge 5.0 -> 5.1Patrick Crews2009-01-051-18/+63
| |\ \ \ \ \ \ \ | | |/ / / / / / | |/| | | | | / | | | |_|_|_|/ | | |/| | | |
| | * | | | | Bug#38833: mysql-test-run needs diff. Problem w/ error handling in calling ↵Patrick Crews2009-01-051-18/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | diff on Windows. Added function to check for diff and return an error message if the utility is not present. Previously, the way we did this didn't work on Windows, but did work on *Nix systems.
| * | | | | | merged 5.0-bugteam -> 5.1-bugteamGeorgi Kodinov2009-01-054-35/+4
| |\ \ \ \ \ \ | | | |/ / / / | | |/| | | |