summaryrefslogtreecommitdiff
path: root/mysql-test/suite
Commit message (Collapse)AuthorAgeFilesLines
* 5.5-mergeSergei Golubchik2011-07-021493-340211/+26447
|\
| * Skip test run with valgrind as test has restarts Vinay Fisrekar2011-06-161-0/+2
| |
| * Correcting "innodb_prefix_index_liftedlimit" failure for embedded mode run.Vinay Fisrekar2011-06-024-178/+220
| | | | | | | | Separating out sub-test.
| * Adding testcases for WL#5743 InnoDB: Lift the limit of index key prefixesVinay Fisrekar2011-06-012-0/+2867
| | | | | | | | | | innodb_prefix_index_liftedlimit.test used for functional testing of increase in prefix index limit
| * Implement worklog #5743 InnoDB: Lift the limit of index key prefixes. Jimmy Yang2011-05-315-71/+529
| | | | | | | | | | | | | | | | With this change, the index prefix column length lifted from 767 bytes to 3072 bytes if "innodb_large_prefix" is set to "true". rb://603 approved by Marko
| * Fix for bug #11762012 - "54553: INNODB ASSERTS INDmitry Lenev2011-05-262-3/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | HA_INNOBASE::UPDATE_ROW, TEMPORARY TABLE, TABLE LOCK". Attempt to update an InnoDB temporary table under LOCK TABLES led to assertion failure in both debug and production builds if this temporary table was explicitly locked for READ. The same scenario works fine for MyISAM temporary tables. The assertion failure was caused by discrepancy between lock that was requested on the rows of temporary table at LOCK TABLES time and by update operation. Since SQL-layer requested a read-lock at LOCK TABLES time InnoDB engine assumed that upcoming statements which are going to be executed under LOCK TABLES will only read table and therefore should acquire only S-lock. An update operation broken this assumption by requesting X-lock. Possible approaches to fixing this problem are: 1) Skip locking of temporary tables as locking doesn't make any sense for connection-local objects. 2) Prohibit changing of temporary table locked by LOCK TABLES ... READ. Unfortunately both of these approaches have drawbacks which make them unviable for stable versions of server. So this patch takes another approach and changes code in such way that LOCK TABLES for a temporary table will always request write lock. In 5.5 version of this patch switch from read lock to write lock is done on SQL-layer. mysql-test/suite/innodb/r/innodb_mysql.result: Added test for bug #11762012 - "54553: INNODB ASSERTS IN HA_INNOBASE::UPDATE_ROW, TEMPORARY TABLE, TABLE LOCK". mysql-test/suite/innodb/t/innodb_mysql.test: Added test for bug #11762012 - "54553: INNODB ASSERTS IN HA_INNOBASE::UPDATE_ROW, TEMPORARY TABLE, TABLE LOCK". sql/sql_parse.cc: Since a temporary table locked by LOCK TABLES can be updated even if it was only locked for read we always request TL_WRITE locks for such tables at LOCK TABLES time. This allows to avoid discrepancy between locks acquired at LOCK TABLES time and by a statement executed under LOCK TABLES. Such a discrepancy has caused problems for InnoDB storage engine. To support this change a part of code implementing LOCK TABLES has been moved to a helper function.
| * Merged BUG#12574820 from 5.1 to 5.5Sven Sandberg2011-05-262-0/+27
| |\ | | | | | | | | | | | | | | | | | | Two conflicts resolved manually: Text conflict in sql/log.cc Text conflict in sql/mysqld.cc
| | * BUG#12574820: binlog.binlog_tmp_table timing out in daily and weekly trunk runSven Sandberg2011-05-262-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem: MYSQL_BIN_LOG::reset_logs acquires mutexes in wrong order. The correct order is first LOCK_thread_count and then LOCK_log. This function does it the other way around. This leads to deadlock when run in parallel with a thread that takes the two locks in correct order. For example, a thread that disconnects will take the locks in the correct order. Fix: change order of the locks in MYSQL_BIN_LOG::reset_logs: first LOCK_thread_count and then LOCK_log. mysql-test/suite/binlog/r/binlog_reset_master.result: added result file mysql-test/suite/binlog/t/binlog_reset_master.test: Added test case that demonstrates deadlock because of wrong mutex order. The deadlock is between two threads: - RESET MASTER acquires mutexes in wrong order. - client thread shutdown code acquires mutexes in right order. Actually, this test case does not produce deadlock in 5.1, probably the client thread shutdown code does not hold both mutexes at the same time. However, the bug existed in 5.1 (mutexes are taken in the wrong order) so we push the test case to 5.1 too, to prevent future regressions. sql/log.cc: Change mutex acquisition to the correct order: first LOCK_thread_count, then LOCK_log. sql/mysqld.cc: Add debug code to synchronize test case.
| | * Changed to Oracle bug numbersAnitha Gopi2011-05-2410-18/+18
| | |
| * | Increase test timeout for rpl.rpl_typeconvBjorn Munch2011-05-251-0/+1
| | | | | | | | | | | | | | | | | | Not for test itself but because it procuces large number of warnings, and this may take >90s to filter on slow boxes
| * | Replaced all bug numbers with Oracle bugDB numbersAnitha Gopi2011-05-234-11/+11
| | |
| * | BUG#11746302Luis Soares2011-05-192-22/+32
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | | | Manual merged mysql-5.1-gca into latest mysql-5.5. Conflicts ========= Text conflict in mysql-test/suite/rpl/r/rpl_relayspace.result Text conflict in mysql-test/suite/rpl/t/rpl_relayspace.test
| | * BUG#11746302: 25228: RPL_RELAYSPACE.TEST FAILS ON POWERMACG5, Luis Soares2011-05-192-20/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | VM-WIN2003-32-A, SLES10-IA64-A The test case waits for master_pos_wait not to timeout, which means that the deadlock between SQL and IO threads was succesfully and automatically dealt with. However, very rarely, master_pos_wait reports a timeout. This happens because the time set for master_pos_wait to wait was too small (6 seconds). On slow test env this could be a problem. We fix this by setting the timeout inline with the one used in sync_slave_with_master (300 seconds). In addition we refactored the test case and refined some comments.
| | * WL#5867Serge Kozlov2011-05-091-1/+1
| | | | | | | | | | | | Replaced the error code by error name
| * | mergeMikael Ronström2011-05-122-0/+43
| |\ \
| | * | Bug#12346411 SQL/LOG.CC:6509: ASSERTION `PREPARED_XIDS > 0' FAILEDJon Olav Hauglid2011-05-122-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This assert could be triggered during two phase commit if binary log was used as transaction coordinator log. The triggered assert checks that the same number of transaction IDs are processed in the prepare and commit phases. The reason it was triggered, was that the transaction consisted of an INSERT/UPDATE IGNORE that had an ignorable error. Since it had an error, no row log events were made and therefore prepared_xids was 0. However, since it was an IGNORE statement, the statement started a read/write statement transaction, committed it and completed successfully. This patch fixes the problem by adjusting the assert to take this possibility into account. Test case added to binlog.binlog_innodb_row.test.
| * | | mergeMikael Ronström2011-05-1211-18/+94
| |\ \ \ | | |/ /
| | * | auto-mergeTatjana Azundris Nuernberg2011-05-1282-802/+883
| | |\ \
| | | * \ BUG#12416700Luis Soares2011-05-112-5/+3
| | | |\ \ | | | | | | | | | | | | | | | | | | Automerged bzr bundle from bug report into latest mysql-5.5.
| | | | * | BUG#12416700: RPL_SHOW_SLAVE_HOSTS FAILS SPORADICALLY (TIMEOUT Luis Soares2011-05-102-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IN WAIT_SHOW_CONDITION) There was a typo in the name of one of the parameters to the include file wait_show_condition. The parameter name was being set to "connection" instead of "condition". We fix this typo, improve one instruction in the test case and deploy parameter checks inside wait_show_condition.inc.
| | | * | | Bug#12384993 EXTRA/RPL_TEST/CHECK_TYPE.INC NEED SUPPORT FOR SPECIFIC ENGINEMagnus Blåudd2011-05-112-2/+2
| | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - add support for choosing the engine of test table(t1) with $engine_type - add primary key to the test table(t1) to support replication of BLOB/TEXT (also with ENGINE=ndb) - change the suppression since the warning printed to error log now says "Column 1"
| | | * | automerge 5.1->5.5Serge Kozlov2011-05-091-1/+1
| | | | |
| | | * | BUG#11762616: BUG#55229: 'POSTION'Luis Soares2011-05-063-8/+8
| | | |\ \ | | | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Manual merge from mysql-5.1 into mysql-5.5. Conflicts ========= Text conflict in mysql-test/suite/rpl/t/rpl_row_until.test Text conflict in sql/handler.h Text conflict in storage/archive/ha_archive.cc
| | | | * BUG#11762616: BUG#55229: 'POSTION' Luis Soares2011-05-063-7/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix for all "postion" in Oracle files (s/postion/position). Updated the copyright notices where needed.
| | | | * Merge mysql-5.1-innodb -> mysql-5.1Vasil Dimov2011-05-028-0/+332
| | | | |\
| | | | | * Merge mysql-5.1 -> mysql-5.1-innodbVasil Dimov2011-04-2124-544/+73
| | | | | |\
| | * | | | \ auto-mergeTatjana Azundris Nuernberg2011-05-123-2/+80
| | |\ \ \ \ \
| | | * | | | | Bug#11902767/Bug#60580: Statement improperly replicated crashes slave SQL threadTatjana Azundris Nuernberg2011-05-123-2/+80
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If LOAD DATA INFILE featured a SET clause, the name=value pairs would be regenerated using item::print. Unfortunately, that code is mostly optimized for EXPLAIN EXTENDED output and such, and can not be relied on to return valid SQL. We now name each value its original, user-supplied form and use that to create LOAD DATA INFILE statements for statement-based replication. mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result: minor change in syntactic sugar mysql-test/suite/rpl/r/rpl_loaddatalocal.result: add test case mysql-test/suite/rpl/t/rpl_loaddatalocal.test: add test case sql/sql_load.cc: Do not try to item::print values in LOAD DATA INFILE's SET clause; they might not even be valid SQL at this point. Use our saved version instead. sql/sql_yacc.yy: If LOAD DATA INFILE has SET name=val clauses, tag the individual val-parts with the user's version so we can later replicate that, rather than the smashed pieces we'd get from item::print once the optimizer's through with our poor values.
| * | | | | | | mergeMikael Ronstrom2011-05-0412-5/+305
| |\ \ \ \ \ \ \ | | | |_|/ / / / | | |/| | | | |
| | * | | | | | Merge mysql-5.5-innodb -> mysql-5.5Vasil Dimov2011-05-022-0/+114
| | |\ \ \ \ \ \
| | | * | | | | | Bug#60309 - Bug#12356829: MYSQL 5.5.9 FOR MAC OSX HAS BUG WITH FOREIGN KEY ↵unknown2011-04-262-0/+114
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | CONSTRAINTS The innoDB global variable srv_lower_case_table_names is set to the value of lower_case_table_names declared in mysqld.h server in ha_innodb.cc. Since this variable can change at runtime, it is reset for each handler call to ::create, ::open, ::rename_table & ::delete_table. But it is possible for tables to be implicitly opened before an explicit handler call is made when an engine is first started or restarted. I was able to reproduce that with the testcase in this patch on a version of InnoDB from 2 weeks ago. It seemed like the change buffer entries for the secondary key was getting put into pages after the restart. (But I am not sure, I did not write down the call stack while it was reproducing.) In the current code, the implicit open, which is actually a call to dict_load_foreigns(), does not occur with this testcase. The change is to replace srv_lower_case_table_names by an interface function in innodb.cc that retrieves the server global variable when it is needed.
| | * | | | | | | fix of partitioning tests that fails on windows + merge of minor cleanupMattias Jonsson2011-04-291-0/+2
| | |\ \ \ \ \ \ \ | | | | |_|_|/ / / | | | |/| | | | |
| | * | | | | | | mergeMattias Jonsson2011-04-263-1/+7
| | |\ \ \ \ \ \ \ | | | | |_|_|_|_|/ | | | |/| | | | |
| | * | | | | | | autocommit 5.1->5.5Serge Kozlov2011-04-262-8/+12
| | |\ \ \ \ \ \ \ | | | | |/ / / / / | | | |/| / / / / | | | |_|/ / / / | | |/| | | | |
| | | * | | | | BUG#12371924. Fxi test caseSerge Kozlov2011-04-252-8/+12
| | | |/ / / /
| | * | | | | Backport a fix for innodb_bug59641 from mysql-trunk-innodbVasil Dimov2011-04-211-0/+2
| | | | | | |
| | * | | | | Merge mysql-5.5-innodb -> mysql-5.5Vasil Dimov2011-04-214-0/+164
| | |\ \ \ \ \
| | | * \ \ \ \ Merge mysql-5.1-innodb to mysql-5.5-innodb.Marko Mäkelä2011-04-112-0/+123
| | | |\ \ \ \ \ | | | | | |_|_|/ | | | | |/| | |
| | | | * | | | Bug #11766513 - 59641: Prepared XA transaction in system after hard crashMarko Mäkelä2011-04-074-0/+250
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | causes future shutdown hang InnoDB would hang on shutdown if any XA transactions exist in the system in the PREPARED state. This has been masked by the fact that MySQL would roll back any PREPARED transaction on shutdown, in the spirit of Bug #12161 Xa recovery and client disconnection. [mysql-test-run] do_shutdown_server: Interpret --shutdown_server 0 as a request to kill the server immediately without initiating a shutdown procedure. xid_cache_insert(): Initialize XID_STATE::rm_error in order to avoid a bogus error message on XA ROLLBACK of a recovered PREPARED transaction. innobase_commit_by_xid(), innobase_rollback_by_xid(): Free the InnoDB transaction object after rolling back a PREPARED transaction. trx_get_trx_by_xid(): Only consider transactions whose trx->is_prepared flag is set. The MySQL layer seems to prevent attempts to roll back connected transactions that are in the PREPARED state from another connection, but it is better to play it safe. The is_prepared flag was introduced in the InnoDB Plugin. trx_n_prepared: A new counter, counting the number of InnoDB transactions in the PREPARED state. logs_empty_and_mark_files_at_shutdown(): On shutdown, allow trx_n_prepared transactions to exist in the system. trx_undo_free_prepared(), trx_free_prepared(): New functions, to free the memory objects of PREPARED transactions on shutdown. This is not needed in the built-in InnoDB, because it would collect all allocated memory on shutdown. The InnoDB Plugin needs this because of innodb_use_sys_malloc. trx_sys_close(): Invoke trx_free_prepared() on all remaining transactions.
| | | | * | | | Load the innodb plugin instead of builtin in innodb_plugin.innodb_bug59410Vasil Dimov2011-04-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Spotted by: Marko
| | | * | | | | Merge mysql-5.1-innodb -> mysql-5.5-innodbVasil Dimov2011-04-052-0/+41
| | | |\ \ \ \ \ | | | | |/ / / /
| | | | * | | | Add the testcase for Bug#59410 to 5.1/InnoDB PluginVasil Dimov2011-04-052-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug#59410 read uncommitted: unlock row could not find a 3 mode lock on the record This bug is present only in 5.6 but I am adding the test case to earlier versions to ensure it never appears in earlier versions too.
| | | | * | | | Add the testcase for Bug#59410 to 5.1/builtinVasil Dimov2011-04-052-0/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug#59410 read uncommitted: unlock row could not find a 3 mode lock on the record This bug is present only in 5.6 but I am adding the test case to earlier versions to ensure it never appears in earlier versions too.
| | * | | | | | autocommit 5.1 -> 5.5Serge Kozlov2011-04-192-0/+8
| | |\ \ \ \ \ \ | | | | |_|/ / / | | | |/| | | |
| | | * | | | | BUG#12371924Serge Kozlov2011-04-182-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update test case
| * | | | | | | Merge 5.5Mikael Ronström2011-04-15134-805/+1167
| |\ \ \ \ \ \ \ | | |/ / / / / /
| | * | | | | | autocommit 5.1 -> 5.5Serge Kozlov2011-04-142-4/+0
| | |\ \ \ \ \ \ | | | |/ / / / /
| | | * | | | | WL#5867, postfix for binlog_bug23533Serge Kozlov2011-04-142-4/+0
| | | | | | | |
| | * | | | | | autocommit 5.1->5.5Serge Kozlov2011-04-1424-527/+58
| | |\ \ \ \ \ \ | | | |/ / / / /
| | | * | | | | WL#5867, reorganize test cases of bugs suiteSerge Kozlov2011-04-1421-509/+58
| | | | | | | |