summaryrefslogtreecommitdiff
path: root/mysql-test
Commit message (Collapse)AuthorAgeFilesLines
* - Fix rpl_checksum test. Use basename of file in error messages, not the oVladislav Vaintroub2012-01-201-1/+1
| | | | | | | | | nes prefixed with .\ or ./ - Add my_basename() to mysys. - Do not compile files that are not needed on Windows (my_addr_resolve, an d safemalloc related stuff it it is not used) Avoids linker warnings about compilation of essentially empty files.
* MDEV-103: 'debug' is disabled in this build warnings causes tests to failVladislav Vaintroub2012-01-201-2/+3
| | | | | | | | | The root cause is that after recent fixes around --debug variable (lp:909051) the variable is now available in both release and debug builds, such that MTR cannot tell a debug compiled server from optimized one. To fix, assign a special default value 'disabled' for 'debug' variable in optimized build and fix MTR to check for this special value to recognize optimized build.
* disable character_sets_dir_basic - slashes vs backslashes problem is not ↵Vladislav Vaintroub2012-01-191-0/+2
| | | | possible to resolve
* fix broken result fileVladislav Vaintroub2012-01-191-10/+0
|
* update the test resultSergei Golubchik2012-01-191-2/+2
|
* MDEV-69 SET optimizer_switch = REPLACE(...) causes ER_WRONG_VALUE_FOR_VARSergei Golubchik2012-01-172-0/+7
| | | | | | | find_set() in typelib.c expected a zero-terminated string include/typelib.h: disable unused flags
* mergeSergei Golubchik2012-01-1686-206/+229
|\
| * fix for 64bit windowsunknown2012-01-1159-61/+61
| | | | | | | | fix misleading test name
| * MDEV-63 - attempt to fix the warning exclusionVladislav Vaintroub2012-01-091-1/+1
| |
| * Fix sys_vars test suite for 32bit systems. (MDEV-53 & MDEV-53)unknown2012-01-0927-141/+160
| |
* | enable test cases for bugs fixed in xtradb.Sergei Golubchik2012-01-166-13/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | disable test cases for bugs not fixed in xtradb. mysql-test/suite/innodb/t/innodb-lock.test: instead of disabling the test in disabled.def (hoping that somebody someday will enable it), skip it only for xtradb (not for innodb), and only for the current xtradb version. the test will enable itself automatically on the next xtradb merge mysql-test/suite/innodb/t/innodb_cmp_drop_table.test: instead of disabling the test in disabled.def (hoping that somebody someday will enable it), skip it only for xtradb (not for innodb), and only for the current xtradb version. the test will enable itself automatically on the next xtradb merge mysql-test/suite/innodb/t/innodb_corrupt_bit.test: fix the error number storage/innobase/handler/ha_innodb.cc: fix the error number storage/xtradb/handler/ha_innodb.cc: fix the error number
* | minor mtr fixSergei Golubchik2012-01-161-1/+1
| | | | | | | | | | mysql-test/mysql-test-run.pl: strace-client does not take an argument
* | mysql-5.5 mergeSergei Golubchik2012-01-16221-2731/+2753
|\ \
| * \ manual up-merge of Bug#11755281Tatjana Azundris Nuernberg2012-01-022-0/+10
| |\ \
| | * | BUG#11755281/47032: ERROR 2006 / ERROR 2013 INSTEAD OF PROPER ERROR MESSAGETatjana Azundris Nuernberg2012-01-022-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If init_command was incorrect, we couldn't let users execute queries, but we couldn't report the issue to the client either as it does not expect error messages before even sending a command. Thus, we simply disconnected them without throwing a clear error. We now go through the proper sequence once (without executing any user statements) so we can report back what the problem is. Only then do we disconnect the user. As always, root remains unaffected by this as init_command is (still) not executed for them. mysql-test/r/init_connect.result: We now report a proper error if init_command fails. Expect as much. mysql-test/t/init_connect.test: We now report a proper error if init_command fails. Expect as much. sql/sql_connect.cc: If init_command fails, throw an error explaining this to the user.
| * | | rpl.rpl_known_bugs_detection fails on PB2 daily mysql-5.5.Rohit Kalhans2011-12-262-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | The rpl.rpl_known_bugs_detection fails on pb2 as warnings were found in the mysqld log file. We fix this problem by suppressing the warning.
| * | | Bug#12809202 61854: MYSQLDUMP --SINGLE-TRANSACTIONNirbhay Choubey2011-12-242-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | --FLUSH-LOG BREAKS CONSISTENCY Post-fix for some failing tests.
| * | | Bug#12809202 61854: MYSQLDUMP --SINGLE-TRANSACTIONNirbhay Choubey2011-12-232-0/+132
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | --FLUSH-LOG BREAKS CONSISTENCY The transaction started by mysqldump gets committed implicitly when flush-log is specified along with single-transaction option, and hence can break consistency. This is because, COM_REFRESH is executed in order to flush logs and starting from 5.5 this command performs an implicit commit. Fixed by making sure that COM_REFRESH is executed before the transaction has started and not after it. Note : This patch triggers following behavioral changes in mysqldump : 1) After this patch we no longer flush logs before dumping each database if --single-transaction option is given like it was done before (in the absence of --lock-all-tables and --master-data options). 2) Also, after this patch, we start acquiring FTWRL before flushing logs in cases when only --single-transaction and --flush-logs are given. It becomes safe to use mysqldump with these two options and without --master-data parameter for backups. client/mysqldump.c: Bug#12809202 61854: MYSQLDUMP --SINGLE-TRANSACTION --FLUSH-LOG BREAKS CONSISTENCY Added logic to make sure that, if flush-log option is specified, mysql_refresh() is never executed after the transaction has started. Added verbose messages for all the executions of mysql_refresh() in order to track its invocation. mysql-test/r/mysqldump.result: Added test case for Bug#12809202. mysql-test/t/mysqldump.test: Added test case for Bug#12809202.
| * | | Bug#11754150: A test case for Bug#6857 has been disabled in sp.test:Sneha Modi2011-12-221-2/+1
| | | | | | | | | | | | | | | | An extra space was inserted in the code by mistake which was producing a result content mismatch.
| * | | Bug#11754150: A TEST CASE FOR BUG#6857 IS DISABLED IN SP.TESTSneha Modi2011-12-222-18/+14
| | | | | | | | | | | | | | | | | | | | | | | | unix_timestamp() is implemented in this part of the code in place of current_time(). Also, since the pb2 machines may be extremely fast, instead of looping through the code, we use sleep(1.1) so that the variables t0 and t1 have different values.
| * | | Bug#11754150: A TEST CASE FOR BUG#6857 IS DISABLED IN SP.TESTSneha Modi2011-12-212-8/+5
| | | | | | | | | | | | | | | | | | | | Unix_timestamp for time comparison has some problems...Re-using current_time for time comparison.
| * | | Bug#11754150: A TEST CASE FOR BUG#6857 IS DISABLED IN SP.TESTSneha Modi2011-12-212-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The time comparison using current_time() stored in an int variable was giving wrong results as the current_time() format as an int implementation has been changed in mysql-trunk but not in mysql-5.5. The time is stored in the format hh:mm:ss as 'time' datatype.But as an int, it is stored as hhmmss, but only on the trunk. On mysql-5.5,as an int, it is stored as hh. Hence, the current_time() function has been changed to unix_timestamp() function.
| * | | Bug#13344643:Format function in view looses locale informationChaithra Gopalareddy2011-12-152-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem description: When a view is created using function FORMAT and if FORMAT function uses locale option,definition of view saved into server doesn't contain that locale information, Ex: create table test2 (bb decimal (10,2)); insert into test2 values (10.32),(10009.2),(12345678.21); create view test3 as select format(bb,1,'sk_SK') as cc from test2; select * from test3; +--------------+ | cc | +--------------+ | 10.3 | | 10,009.2 | | 12,345,678.2 | +--------------+ 3 rows in set (0.02 sec) show create view test3 View: test3 Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `test3` AS select format(`test2`.`bb`,1) AS `cc` from `test2` character_set_client: latin1 collation_connection: latin1_swedish_ci 1 row in set (0.02 sec) Problem Analysis: The function Item_func_format::print() which prints the query string to create the view does not print the third argument (i.e the locale information). Hence view is created without locale information. Problem Solution: If argument count is more than 2 we now print the third argument onto the query string. Files changed: sql/item_strfunc.cc Function call changes: Item_func_format::print() mysql-test/t/select.test Added test case to test the bug mysql-test/r/select.result Result of the test case appended here
| * | | Bug#13437900 - VALGRIND REPORTS A LEAK FOR REPL_IGNORE_SERVER_IDSAndrei Elkin2011-12-142-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was memory leak when running some tests on PB2. The reason of the failure is an early return from change_master() that was supposed to deallocate a dyn-array. Actually the same bug58915 was fixed in trunk with relocating the dyn-array destruction into THD::cleanup_after_query() which can't be bypassed. The current patch backports magne.mahre@oracle.com-20110203101306-q8auashb3d7icxho and adds two optimizations: were done: the static buffer for the dyn-array to base on, and the array initialization is called precisely when it's necessary rather than per each CHANGE-MASTER as before. mysql-test/suite/rpl/t/rpl_empty_master_host.test: the test is binlog-format insensitive so it will be run with MIXED mode only. mysql-test/suite/rpl/t/rpl_server_id_ignore.test: the test is binlog-format insensitive so it will be run with MIXED mode only. sql/sql_class.cc: relocating the dyn-array destruction into THD::cleanup_after_query(). sql/sql_lex.cc: LEX.mi zero initialization is done in LEX(). sql/sql_lex.h: Optimization for repl_ignore_server_ids to base on a static buffer which size is chosen to fit to most common use cases. sql/sql_repl.cc: dyn-array destruction is relocated to THD::cleanup_after_query(). sql/sql_yacc.yy: Refining logics of Lex->mi.repl_ignore_server_ids initialization. The array is initialized once a corresponding option in CHANGE MASTER token sequence is found.
| * | | Addendum to the fix for bug #11754011: fixed a testcase result to include Georgi Kodinov2011-12-141-0/+5
| | | | | | | | | | | | | | | | the new --slow-start-timeout option's help output
| * | | Merging from mysql-5.1 to mysql-5.5. Annamalai Gurusami2011-12-132-0/+22
| |\ \ \ | | |/ /
| | * | Bug #13117023: Innodb increments handler_read_key when it should notAnnamalai Gurusami2011-12-134-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The counter handler_read_key (SSV::ha_read_key_count) is incremented incorrectly. The mysql server maintains a per thread system_status_var (SSV) object. This object contains among other things the counter SSV::ha_read_key_count. The purpose of this counter is to measure the number of requests to read a row based on a key (or the number of index lookups). This counter was wrongly incremented in the ha_innobase::innobase_get_index(). The fix removes this increment statement (for both innodb and innodb_plugin). The various callers of the innobase_get_index() was checked to determine if anybody must increment this counter (if they first call innobase_get_index() and then perform an index lookup). It was found that no caller of innobase_get_index() needs to worry about the SSV::ha_read_key_count counter.
| | * | BUG#11751793 - 42784: ARCHIVE TABLES CAUSE 100% CPU USAGEAshish Agarwal2011-11-232-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | AND HANG IN SHOW TABLE STATUS. ISSUE: Table corruption due to concurrent queries. Different threads running insert and check query leads to table corruption. Not properly locked, rows are inserted in between check query. SOLUTION: In check query mutex lock is acquired for a longer time to handle concurrent insert and check query. NOTE: Additionally we backported the fix for CHECKSUM issue(bug#11758979).
| | * | Disabling main.query_cache_28249.test since this test failsJon Olav Hauglid2011-11-221-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | sporadically on 5.1. See Bug#12584161. Test runs successfully on 5.5/trunk, so this changeset will be null-merged.
| * | | Fix Bug #13083023 - 60229: BROKEN COMPATIBILITY: ERROR WHILE CREATE TABLEJimmy Yang2011-12-073-0/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | WITH FOREIGN KEY CONSTRAI rb://844 approved by marko
| * | | Bug#11759044 - 51325: DROPPING AN EMPTY INNODB TABLE TAKES A LONG TIMEInaam Rana2011-12-072-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | WITH LARGE BUFFER POOL (Note: this a backport of revno:3472 from mysql-trunk) rb://845 approved by: Marko When dropping a table (with an .ibd file i.e.: with innodb_file_per_table set) we scan entire LRU to invalidate pages from that table. This can be painful in case of large buffer pools as we hold the buf_pool->mutex for the scan. Note that gravity of the problem does not depend on the size of the table. Even with an empty table but a large and filled up buffer pool we'll end up scanning a very long LRU list. The fix is to scan flush_list and just remove the blocks belonging to the table from the flush_list, marking them as non-dirty. The blocks are left in the LRU list for eventual eviction due to aging. The flush_list is typically much smaller than the LRU list but for cases where it is very long we have the solution of releasing the buf_pool->mutex after scanning 1K pages. buf_page_[set|unset]_sticky(): Use new IO-state BUF_IO_PIN to ensure that a block stays in the flush_list and LRU list when we release buf_pool->mutex. Previously we have been abusing BUF_IO_READ to achieve this.
| * | | Bug#13013970 MORE CRASHES IN FIELD_BLOB::GET_KEY_IMAGETor Didriksen2011-12-052-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The predicate is re-written from ((`test`.`g1`.`a` = geometryfromtext('')) or ... to ((`test`.`g1`.`a` = <cache>(geometryfromtext(''))) or ... The range optimizer calls save_in_field_no_warnings, in order to fetch keys. save_in_field_no_warnings returns 0 because of the cache wrapper, and get_mm_leaf() proceeded to call Field_blob::get_key_image() which accesses un-initialized data. mysql-test/r/gis.result: New test case. mysql-test/t/gis.test: New test case. sql/item.cc: If we have cached a null_value, then verify that the Field can accept it.
| * | | BUG #11746897 - 29508: PLEASE IMPLEMENT MYSQL-TEST-RUN.PL --STRACE-MASTERunknown2011-12-011-11/+45
| | | | | | | | | | | | | | | | | | | | | | | | Includes fix for strace-client and restricted to strace and linux only. ******
| * | | BUG#11745230Luis Soares2011-12-013-34/+227
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Refactored the test case: hardened and extended it. Created test inc file to abstract the task of relocating binlogs. Also, disabled it on windows for not cluttering the test case any further, as it depends heavily on doing filesystem operations and path handling. mysql-test/include/relocate_binlogs.inc: Auxiliar include file that performs the relocation of binary logs listed in an index file.
| * | | reverting the initial patch for bug#13437900 for refinement.Andrei Elkin2011-11-291-1/+0
| | | |
| * | | Bug#13437900 - VALGRIND REPORTS A LEAK FOR REPL_IGNORE_SERVER_IDSAndrei Elkin2011-11-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was memory leak when running some tests on PB2. The reason of the failure is an early return from change_master() that was supposed to deallocate a dyn-array. Fixed with relocating the dyn-array's destructor at ~LEX() that is the end of the session, per Gleb's patch idea. Two optimizations were done: the static buffer for the dyn-array to base on, and the array initialization is called precisely when it's necessary rather than per each CHANGE-MASTER as before. mysql-test/suite/rpl/t/rpl_empty_master_host.test: the test is binlog-format insensitive so it will be run with MIXED mode only. sql/sql_lex.cc: the new flag is initialized. sql/sql_lex.h: A new bool flag new member to LEX.mi is added to stay UP since after LEX.mi.repl_ignore_server_ids dynarray initialization was called for the first time on the session. So it is set once and its life time is session. The array is destroyed at the end of the session. sql/sql_repl.cc: dyn-array destruction is relocated to ~LEX. sql/sql_yacc.yy: Refining logics of Lex->mi.repl_ignore_server_ids initialization. The array is initialized once a corresponding option in CHANGE MASTER token sequence is found. The fact of initialization is memorized into the new flag.
| * | | BUG#11745230Luis Soares2011-11-293-1/+204
| |\ \ \ | | | | | | | | | | | | | | | Automerged approved bzr bundle into latest mysql-5.5.
| | * | | BUG#11745230: 12133: MASTER.INDEX FILE KEEPS MYSQLD FROM STARTING IFLuis Soares2011-11-243-1/+204
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BIN LOG HAS BEEN MOVED When moving the binary/relay log files from one location to another and restarting the server with a different log-bin or relay-log paths, would cause the startup process to abort. The root cause was that the server would not be able to find the log files because it would consider old paths for entries in the index file instead of the new location. What's even worse, the relative paths would not be considered relative to the path provided in log-bin and relay-log, but to mysql_data_dir. We fix the cases where the server contains relative paths. When the server is reading from the index file, it checks whether the entry contains relative paths. If it does, we replace it with the absolute path set in log-bin/relay-log option. Absolute paths remain unchanged and the index must be manually edited to consider the new log-bin and/or relay-log path (this should be documented). This is a fix for a GA version, that does not break behavior (that much). For development versions, we should go with Zhenxing's approach that removes paths altogether from index files. mysql-test/include/begin_include_file.inc: Added parameter to keep the begin_include_file.inc silent. Useful when including scripts that contain platform dependent parameters, for example: --let $rpl_server_parameters=--log-bin=$tmpdir/slave-bin --relay-log=$tmpdir/slave-relay-bin --let $keep_include_silent=1 source include/rpl_start_server.inc; --let $keep_include_silent=0 We want the paths ($tmpdir/slave-bin and $tmpdir/slave-relay-bin) not to be in the result file. mysql-test/suite/rpl/t/rpl_binlog_index.test: Test case. sql/log.cc: When finding the corresponding log entry in the index file, we first normalize the paths before doing the comparison. This will make relative paths to be turned into absolute paths (based on the opt_bin_logname or opt_relay_logname) and then compared against also, expanded paths entered, through CHANGE MASTER for instance. sql/log.h: Added normalize_binlog_name, which turns relative paths, into absolute paths given the parameter: is_relay_log ? opt_relay_logname : opt_bin_logname . sql/mysqld.cc: Exposing opt_bin_logname. sql/mysqld.h: Exposing opt_bin_logname.
| * | | | BUG#13427949: CHANGE MASTER TO USER='' (EMPTY USER) CAUSES ERRORS ON VALGRING Luis Soares2011-11-242-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When passing an empty user to the connect function will cause valgrind warnings. Seems that the client code is not prepared to handle empty users. On 5.6 this can even be triggered by START SLAVE PASSWORD='...'; i.e., without setting USER='...' on the START SLAVE command (see WL#4143 for details on the new additional START SLAVE commands). To fix this, we disallow empty users when configuring the slave connection parameters (this decision might be revisited if the client code accepts empty users in the future). sql/slave.cc: We throw an error if an empty user is supplied to the connection function.
| * | | | Disable innodb_corrupt_bit.test on windows, issues withJimmy Yang2011-11-221-0/+4
| |/ / / | | | | | | | | | | | | | | | | | | | | innodb_change_buffering_debug prevents creating the Dup Key scenario on windows
| * | | Bug#11748731:SOME 'BIG' TESTS FAILING ON 6.0 Sneha Modi2011-11-213-292/+406
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A patch for alter_table-big.test has been committed earlier. This is a patch for create-big.test: The test used to time-out after 900 seconds. It relied on debug sleeps that are no longer present in the code. Since the sleeps are long gone, fixing the problem didn't involve just updating the result file or using macro "show_binlog_events2.inc" instead of "show binlog events" statement. The test needed to be rewritten using debug sync points, and result then needed to be updated. So, the sleeps have been replaced by debug_sync points and the test execution time has been reduced significantly.
| * | | Followup to 11750417:Bjorn Munch2011-11-212-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | Disable federated_plugin test for embedded, like other federated tests Also removed redundant include/not_embedded.inc from federated.test
| * | | Bug#11748572:ALLOCATING A LARGE QUERY CACHE IS NOT DETERMINISTICSneha Modi2011-11-215-21/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setting query_cache_size to larger values might fail depending on the memory pressure being put on the system. This can be seen on pushbuild as the test case query_cache_size_basic tries to allocate a +3GB query cache, which succeeds in some machines and fails in others. So this part of the code where the test case tries to allocate +3GB query cache has been disabled for now to get the test running on pb2.
| * | | merge bug#13390506 from mysql-5.1Inaam Rana2011-11-183-0/+73
| | | |
| * | | Merge from mysql-5.5.18-releaseunknown2011-11-1725-25/+3368
| |\ \ \
| | * \ \ Merge mysql-5.1-security to mysql-5.5-security.Marko Mäkelä2011-10-263-0/+2072
| | |\ \ \
| | * \ \ \ Merge mysql-5.1-security to mysql-5.5-security.Marko Mäkelä2011-10-252-1/+33
| | |\ \ \ \
| | * \ \ \ \ Merge mysql-5.1-security -> mysql-5.5-security (Fix Bug#12661768)Vasil Dimov2011-10-252-0/+52
| | |\ \ \ \ \
| | * \ \ \ \ \ Auto-merge from mysql-5.5.Alexander Nozdrin2011-10-24140-1834/+218
| | |\ \ \ \ \ \
| | * | | | | | | Bug#12540545 61101: ASSERTION FAILURE IN THREAD 1256741184 IN FILE ↵Sergey Glukhov2011-10-192-0/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | /BUILDDIR/BUILD/BUILD/MYSQ The assertion in innodb is triggered in this way: 1. mysql server does lookup on the primary key with full key, innodb decides to not store cursor position because "any index_next/prev call will return EOF anyway" 2. server asks innodb to return any next record in the index and the assertion is triggered because no cursor position is stored. It happens when a unique search (match_mode=ROW_SEL_EXACT) in the clustered index is performed. InnoDB has never stored the cursor position after a unique key lookup in the clustered index because storing the position is an expensive operation. The bug was introduced by WL3220 'Loose index scan for aggregate functions'. The fix is to disallow loose index scan optimization for AGG_FUNC(DISTINCT ...) if GROUP_MIN_MAX quick select uses clustered key. mysql-test/r/group_min_max_innodb.result: test case mysql-test/t/group_min_max_innodb.test: test case sql/opt_range.cc: disallow loose index scan optimization for AGG_FUNC(DISTINCT ...) if GROUP_MIN_MAX quick select uses clustered key.