- 04 Jun, 2009 2 commits
-
-
Tatiana A. Nurnberg authored
Holding on to the temporary inno hash index latch is an optimization in many cases, but a pessimization in some others. Release temporary latches for those corner cases we (or rather, or customers, thanks!) have identified, that is, when we are about to do something that might take a really long time, like REPAIR or filesort. sql/ha_myisam.cc: Let go of (inno, for now) latch when doing MyISAM-repair. (optimize passes through repair.) ("Stuck" in "Repair with keycache".) sql/sql_insert.cc: Let go of (inno, for now) latch when doing CREATE...SELECT in select_insert::send_data() -- it might take a while. ("stuck" in "Sending data") sql/sql_select.cc: Release temporary (inno, for now) latch on - free_tmp_table() (this can take surprisingly long, "removing tmp table") - create_myisam_from_heap() (HEAP table overflowing onto disk as MyISAM, "converting HEAP to MyISAM")
-
Sergey Glukhov authored
The crash happens because of uninitialized lex->ssl_cipher, lex->x509_subject, lex->x509_issuer variables. The fix is to add initialization of these variables for stored procedures&functions. mysql-test/r/sp_notembedded.result: test result mysql-test/t/sp_notembedded.test: test case sql/sql_acl.cc: The crash happens because of uninitialized lex->ssl_cipher, lex->x509_subject, lex->x509_issuer variables. The fix is to add initialization of these variables for stored procedures&functions.
-
- 02 Jun, 2009 1 commit
-
-
Sergey Glukhov authored
The crash happens due to wrong max_length value which is set on Item_func_round::fix_length_and_dec() stage. The value is set to args[0]->max_length which is too big in case of LONGTEXT(LONGBLOB) fields. The fix is to set max_length using float_length() function. mysql-test/r/func_math.result: test result mysql-test/t/func_math.test: test case sql/item_func.cc: The crash happens due to wrong max_length value which is set on Item_func_round::fix_length_and_dec() stage. The value is set to args[0]->max_length which is too big in case of LONGTEXT(LONGBLOB) fields. The fix is to set max_length using float_length() function.
-
- 01 Jun, 2009 1 commit
-
-
Alexey Kopytov authored
-
- 31 May, 2009 3 commits
-
-
He Zhenxing authored
-
He Zhenxing authored
-
He Zhenxing authored
BEGIN/COMMIT/ROLLBACK was subject to replication db rules, and caused the boundary of a transaction not recognized correctly when these queries were ignored by the rules. Fixed the problem by skipping replication db rules for these statements. sql/log_event.cc: Skip checking replication db rules for BEGIN/COMMIT/ROLLBACK statements
-
- 30 May, 2009 1 commit
-
-
Davi Arnaut authored
Bug#34309: '_PC' macro redefinition For reasons that are now a mystery, we had defined a CPP symbol to help ancient compilers work better (in some way that's lost to history). This interferes with at least one modern compiler. Now, don't define the _PC symbol. Those other underscore-leading symbols are suspect also, but at least the names aren't inscrutable. Let's leave them for now.
-
- 28 May, 2009 2 commits
-
-
Sergey Glukhov authored
-
Sergey Glukhov authored
The fix is to use case insensitive collation for mysql client command search. client/mysql.cc: The fix is to use case insensitive collation for mysql client command search. mysql-test/r/mysql.result: test result mysql-test/t/mysql.test: test case
-
- 27 May, 2009 3 commits
-
-
Georgi Kodinov authored
-
Sergey Glukhov authored
On 64-bit Windows: querying MERGE table with keys may cause server crash.The problem is generic and may affect any statement accessing MERGE table cardinality values. When MERGE engine was copying cardinality statistics, it was using incorrect size of element in cardinality statistics array (sizeof(ptr)==8 instead of sizeof(ulong)==4), causing access of memory beyond of the allocated bounds. sql/ha_myisam.cc: When copying rec_per_key array (an array of ulong) use proper size of element, that is sizeof(ulong). sql/ha_myisammrg.cc: When copying rec_per_key array (an array of ulong) use proper size of element, that is sizeof(ulong). sql/table.cc: When allocating rec_per_key array (an array of ulong) use proper size of element, that is sizeof(ulong).
-
Alexey Kopytov authored
old_password() functions The PASSWORD() and OLD_PASSWORD() functions could lead to memory reads outside of an internal buffer when used with BLOB arguments. String::c_ptr() assumes there is at least one extra byte in the internally allocated buffer when adding the trailing '\0'. This, however, may not be the case when a String object was initialized with externally allocated buffer. The bug was fixed by adding an additional "length" argument to make_scrambled_password_323() and make_scrambled_password() in order to avoid String::c_ptr() calls for PASSWORD()/OLD_PASSWORD(). However, since the make_scrambled_password[_323] functions are a part of the client library ABI, the functions with the new interfaces were implemented with the 'my_' prefix in their names, with the old functions changed to be wrappers around the new ones to maintain interface compatibility. mysql-test/r/func_crypt.result: Added a test case for bug #44767. mysql-test/t/func_crypt.test: Added a test case for bug #44767. sql/item_strfunc.cc: Use the new my_make_scrambled_password*() to avoid String::c_ptr(). sql/item_strfunc.h: Changed Item_func[_old]_password::alloc() interfaces so that we can use the new my_make_scrambled_password*() functions. sql/mysql_priv.h: Added declarations for the new my_make_scrambled_password*() functions. sql/password.c: Added new my_make_scrambled_password*() functions with an additional "length" argument. Changed ones to be wrappers around the new ones to maintain interface compatibility. sql/sql_yacc.yy: Utilize the new password hashing functions with additional length argument.
-
- 26 May, 2009 1 commit
-
-
unknown authored
-
- 22 May, 2009 3 commits
-
-
Luis Soares authored
stop/start slave When stopping and restarting the slave while it is replicating temporary tables, the server would crash or raise an assertion failure. This was due to the fact that although temporary tables are saved between slave threads restart, the reference to the thread in use (table->in_use) was not being properly updated when the restart happened (it would still reference the old/invalid thread instead of the new one). This patch addresses this issue by resetting the reference to the new slave thread on slave thread restart. mysql-test/r/rpl_temporary.result: Result file. mysql-test/t/rpl_temporary.test: Test case that checks that both failures go away. sql/slave.cc: Changed slave.cc to reset sql_thd reference in temporary tables.
-
Patrick Crews authored
-
Patrick Crews authored
Created new .test file - mysqldump_restore that does test restore from mysqldump output for a limited number of basic cases. Create new .inc file - mysqldump.inc - renames original table and uses mysqldump output to recreate the table, then uses diff_tables.inc to compare the two tables. Backported include/diff_tables.inc to facilitate this testing. New patch incorporating review feedback prior to push. mysqldump.test - removed redundant call to include/have_log_bin.inc (was used twice in the test!)
-
- 21 May, 2009 6 commits
-
-
Patrick Crews authored
Created new .test file - mysqldump_restore that does this for a limited number of basic cases. Created new .inc file - mysqldump.inc - renames original table and uses mysqldump output to recreate the table, then uses diff_tables.inc to compare the two tables. Backported include/diff_tables.inc to facilitate this testing.
-
Alexey Kopytov authored
-
Alexey Kopytov authored
Since max_allowed_packet is a read-only variable in 5.1 and up, disable warnings to avoid unnecessary test case complication.
-
Alexey Kopytov authored
-
Alexey Kopytov authored
Set max_allowed_packet to get a consistent error message.
-
Alexey Kopytov authored
-
- 20 May, 2009 2 commits
-
-
MySQL Build Team authored
-
Alexey Kopytov authored
warnings after uncompressed_length UNCOMPRESSED_LENGTH() did not validate its argument. In particular, if the argument length was less than 4 bytes, an uninitialized memory value was returned as a result. Since the result of COMPRESS() is either an empty string or a 4-byte length prefix followed by compressed data, the bug was fixed by ensuring that the argument of UNCOMPRESSED_LENGTH() is either an empty string or contains at least 5 bytes (as done in UNCOMPRESS()). This is the best we can do to validate input without decompressing. mysql-test/r/func_compress.result: Added a test case for bug #44796. mysql-test/t/func_compress.test: Added a test case for bug #44796. sql/item_strfunc.cc: Make sure that the argument of UNCOMPRESSED_LENGTH() contains at least 5 bytes (as done in UNCOMPRESS()).
-
- 19 May, 2009 1 commit
-
-
Sergey Glukhov authored
Internal InnoDN FK parser does not recognize '\'' as quotation symbol. Suggested fix is to add '\'' symbol check for quotation condition (dict_strip_comments() function). innobase/dict/dict0dict.c: Internal InnoDN FK parser does not recognize '\'' as quotation symbol. Suggested fix is to add '\'' symbol check for quotation condition (dict_strip_comments() function). mysql-test/r/innodb_mysql.result: test result mysql-test/t/innodb_mysql.test: test case
-
- 18 May, 2009 1 commit
-
-
Gleb Shchepa authored
with a "HAVING" clause though query works SELECT from views defined like: CREATE VIEW v1 (view_column) AS SELECT c AS alias FROM t1 HAVING alias fails with an error 1356: View '...' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them CREATE VIEW form with a (column list) substitutes SELECT column names/aliases with names from a view column list. However, alias references in HAVING clause was not substituted. The Item_ref::print function has been modified to write correct aliased names of underlying items into VIEW definition generation/.frm file. mysql-test/r/view.result: Added test file for bug #40825. mysql-test/t/view.test: Added test file for bug #40825. sql/item.cc: Bug#40825: Error 1356 while selecting from a view with a "HAVING" clause though query works The Item_ref::print function has been modified to write correct aliased names of underlying items into VIEW definition generation/.frm file.
-
- 15 May, 2009 10 commits
-
-
Matthias Leich authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Philip Stoev authored
It turns out that this test case no longer fails with the discrepancy in numbers that was the original cause for disabling this test (and showed potential genuine issues with the query cache). Therefore this test is being enabled after some minor adjustment of error codes and messages.
-
Matthias Leich authored
Details: 1. Add missing "disconnect <session>" 2. Take care that the disconnects are finished when the test terminates 3. Replace error names by error numbers 4. Minor beautifying of script code
-
Georgi Kodinov authored
-
Alexey Kopytov authored
-
Alexey Kopytov authored
Field_time::get_time() did not initialize some members of MYSQL_TIME which led to valgrind warnings when those members were accessed in Protocol_simple::store_time(). It is unlikely that this bug could result in wrong data being returned, since Field_time::get_time() initializes the 'day' member of MYSQL_TIME to 0, so the value of 'day' in Protocol_simple::store_time() would be 0 regardless of the values for 'year' and 'month'. mysql-test/r/type_time.result: Added a test case for bug #44792. mysql-test/t/type_time.test: Added a test case for bug #44792. sql/field.cc: Field_time::get_time() did not initialize some members of MYSQL_TIME which led to valgrind warnings when those members were accessed in Protocol_simple::store_time().
-
Sergey Glukhov authored
In UNION if we use last SELECT without braces and this SELECT have ORDER BY clause, such clause belongs to global UNION. It is parsed like last SELECT part and used further as 'unit->global_parameters->order_list' value. During DESCRIBE EXTENDED we call select_lex->print_order() for last SELECT where order fields refer to tmp table which already freed. It leads to crash. The fix is clean up global_parameters->order_list instead of fake_select_lex->order_list. mysql-test/r/union.result: test result mysql-test/t/union.test: test case sql/sql_union.cc: In UNION if we use last SELECT without braces and this SELECT have ORDER BY clause, such clause belongs to global UNION. It is parsed like last SELECT part and used further as 'unit->global_parameters->order_list' value. During DESCRIBE EXTENDED we call select_lex->print_order() for last SELECT where order fields refer to tmp table which already freed. It leads to crash. The fix is clean up global_parameters->order_list instead of fake_select_lex->order_list.
-
- 14 May, 2009 2 commits
-
-
Philip Stoev authored
UNIX sockets need to be on a path shorter than 70 characters on some older platofrms. MTRv1 tries to fix this by moving the socket to the $TMPDIR, however this causes issues with certain tests on Windows. Fixed by not applying any hacks on Windows - Windows does not need them.
-
Philip Stoev authored
UNIX sockets need to be on a path shorter than 70 characters on some older platofrms. MTRv1 tries to fix this by moving the socket to the $TMPDIR, however this causes issues with certain tests on Windows. Fixed by not applying any hacks on Windows - Windows does not need them.
-
- 13 May, 2009 1 commit
-
-
Ramil Kalimullin authored
-