- 07 Jan, 2009 1 commit
-
-
Davi Arnaut authored
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.
-
- 05 Jan, 2009 4 commits
-
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
-
Georgi Kodinov authored
case.
-
- 31 Dec, 2008 1 commit
-
-
Gleb Shchepa authored
Execution of queries containing the CASE function of aggregate function like in "SELECT ... CASE ARGV(...) WHEN ..." crashed the server. The CASE function caches pointers to concrete comparison functions for an each pair of types of CASE-WHERE clause parameters, i.e. for the "CASE INT_RESULT WHERE REAL_RESULT THEN ... WHERE DECIMAL_RESULT ... END" function call it caches comparisons for INT_RESULT with REAL_RESULT and for INT_RESULT with DECIMAL_RESULT. Usually a result type is known after a call to the fix_fields function, however, the setup_copy_fields function call may wrap aggregate items with Item_copy_string that has STRING_RESULT result type, so setup_copy_fields may change argument result types of the CASE function after call to Item_func_case::fix_fields/fix_length_and_dec. Then the Item_func_case::find_item function tries to use comparison function for unexpected pair of the STRING_RESULT and some other type - that caused an assertion failure of server crash. The Item_func_case::fix_length_and_dec function has been modified to take into account possible STRING_RESULT result type in the presence of aggregate arguments of the CASE function. mysql-test/r/func_in.result: Added test case for bug #41363. mysql-test/t/func_in.test: Added test case for bug #41363. sql/item_cmpfunc.cc: Bug #41363: crash of mysqld on windows with aggregate in case The Item_func_case::fix_length_and_dec function has been modified to take into account possible STRING_RESULT result type in the presence of aggregate arguments of the CASE function.
-
- 30 Dec, 2008 5 commits
-
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
-
Tatiana A. Nurnberg authored
-
Sven Sandberg authored
Disabled rpl_binlog_corruption since it requires the new mtr, which only exists in 5.1-rpl / 6.0-rpl. Please re-enable the test in 5.1-rpl / 6.0-rpl. mysql-test/suite/rpl/t/disabled.def: Disabled rpl_binlog_corruption since it requires the new mtr, which only exists in 5.1-rpl / 6.0-rpl.
-
- 29 Dec, 2008 4 commits
-
-
Sven Sandberg authored
Problem: When an Incident_log_event contains a bad incident number on disk, the server crashes with an assertion. Fix: Don't validate input with assertions. Use errors. mysql-test/include/cleanup_fake_relay_log.inc: Added auxiliary file to restore things that setup_fake_relay_log.inc did. mysql-test/include/setup_fake_relay_log.inc: Added auxiliary file to setup replication from an existing relay log. mysql-test/std_data/bug40482-bin.000001: Binlog file for rpl.rpl_binlog_corruption mysql-test/suite/rpl/t/rpl_binlog_corruption.test: New test file. sql/log_event.cc: Check that the incident number is correct at the time the event is constructed. Do not assert it at the time it is printed. sql/log_event.h: Incident_log_event::is_valid() should verify that the incident number is valid. sql/rpl_constants.h: Incident numbers should be hard-coded, since they may appear in files.
-
Sergey Glukhov authored
The problem: data file can not be deleted on win because there is another opened instance of this file. Data file might be opened twice, on table opening stage and during write_row execution. We need to close both instances to satisfy Win. mysql-test/r/csv.result: test result mysql-test/t/csv.test: test case storage/csv/ha_tina.cc: The problem: data file can not be deleted on win because there is another opened instance of this file. Data file might be opened twice, on table opening stage and during write_row execution. We need to close both instances to satisfy Win.
-
Sergey Glukhov authored
-
Sergey Glukhov authored
Added global status variable 'Queries' which represents total amount of queries executed by server including statements executed by SPs. note: It's old behaviour of 'Questions' variable. mysql-test/r/status.result: test result mysql-test/t/status.test: test case sql/mysqld.cc: Added global status variable 'Queries' which represents total amount of queries executed by server including statements executed by SPs. note: It's old behaviour of 'Questions' variable. sql/sql_show.cc: Added global status variable 'Queries' which represents total amount of queries executed by server including statements executed by SPs. note: It's old behaviour of 'Questions' variable. sql/structs.h: Added global status variable 'Queries' which represents total amount of queries executed by server including statements executed by SPs. note: It's old behaviour of 'Questions' variable.
-
- 28 Dec, 2008 5 commits
-
-
Joerg Bruehe authored
-
Joerg Bruehe authored
-
Kent Boortz authored
-
Kent Boortz authored
-
Kent Boortz authored
-
- 24 Dec, 2008 8 commits
-
-
Sergey Glukhov authored
-
Sergey Glukhov authored
Table could be marked dependent because it is either 1) an inner table of an outer join, or 2) it is a part of STRAIGHT_JOIN. In case of STRAIGHT_JOIN table->maybe_null should not be assigned. The fix is to set st_table::maybe_null to 'true' only for those tables which are used in outer join. mysql-test/r/select.result: test result mysql-test/t/select.test: test case sql/sql_select.cc: Table could be marked dependent because it is either 1) an inner table of an outer join, or 2) it is a part of STRAIGHT_JOIN. In case of STRAIGHT_JOIN table->maybe_null should not be assigned. The fix is to set st_table::maybe_null to 'true' only for those tables which are used in outer join. sql/sql_select.h: added comment
-
Sergey Glukhov authored
-
Sergey Glukhov authored
init user->user struct with thd->security_ctx->priv_user context if user->user is not initializied mysql-test/r/grant.result: test result mysql-test/t/grant.test: test case sql/set_var.cc: init user->user struct with thd->security_ctx->priv_user context if user->user is not initializied
-
Sergey Glukhov authored
-
Sergey Glukhov authored
replace wild_case_compare with my_wildcmp which is multibyte safe function mysql-test/r/lowercase_utf8.result: test result mysql-test/t/lowercase_utf8-master.opt: test case mysql-test/t/lowercase_utf8.test: test case sql/sql_show.cc: replace wild_case_compare with my_wildcmp which is multibyte safe function
-
Sergey Glukhov authored
-
Sergey Glukhov authored
-
- 23 Dec, 2008 7 commits
-
-
Sergey Glukhov authored
On Winodws FN_DEVCHAR is ':' symbol. There is a check in mysql_create_table_no_lock() func on FN_DEVCHAR presence but this code is obsolete and unnecessary. So the fix is to remove unnecessary code. mysql-test/r/create.result: test result mysql-test/t/create.test: test case sql/sql_table.cc: On Winodws FN_DEVCHAR is ':' symbol. There is a check in mysql_create_table_no_lock() func on FN_DEVCHAR presence but this code is obsolete and unnecessary. So the fix is to remove unnecessary code.
-
Sergey Glukhov authored
-
Sergey Glukhov authored
The problem is that we cannot insert new record into memory table when table size exceeds max memory table size. The fix is to use schema_table_store_record() function which converts memory table into MyISAM in case of table size exceeding. Note: There is no test case for this bug, the reason is that 1. The code that was added already is checked(i.e. works) with existing tests 2. Correct work of schema_table_store_record() is checked with other test cases (information_schema tests) So new code is fully covered with existing test cases. sql/mysql_priv.h: make schema_table_store_record() function global sql/sql_acl.cc: The problem is that we cannot insert new record into memory table when table size exceeds max memory table size. The fix is to use schema_table_store_record() function which converts memory table into MyISAM in case of table size exceeding. sql/sql_show.cc: make schema_table_store_record() function global
-
Sergey Glukhov authored
-
Sergey Glukhov authored
The MONTHNAME/DAYNAME functions returns binary string, so the LOWER/UPPER functions are not effective on the result of MONTHNAME/DAYNAME call. Character set of the MONTHNAME/DAYNAME function result has been changed to connection character set. include/m_ctype.h: added my_charset_repertoire function mysql-test/r/ctype_ucs.result: test result mysql-test/r/func_time.result: test result mysql-test/t/ctype_ucs.test: test case mysql-test/t/func_time.test: test case sql/item_timefunc.cc: Item_func_monthname::fix_length_and_dec and Item_func_dayname::fix_length_and_dec methods have been modified to use connection character set sql/item_timefunc.h: Item_func_monthname::fix_length_and_dec and Item_func_dayname::fix_length_and_dec methods have been modified to use connection character set sql/mysql_priv.h: added max_month_name_length, max_day_name_length fields into MY_LOCALE struct sql/mysqld.cc: The test_lc_time_sz function controls modifications of the locale database in debugging mode. sql/sql_locale.cc: initialization of max_month_name_length, max_day_name_length fields strings/ctype.c: added my_charset_repertoire function
-
Sergey Petrunia authored
-
Sergey Vojtovich authored
-
- 22 Dec, 2008 1 commit
-
-
Sergey Petrunia authored
-
- 19 Dec, 2008 4 commits
-
-
Matthias Leich authored
-
Sergey Petrunia authored
- QUICK_INDEX_MERGE_SELECT deinitializes its rnd_pos() scan when it reaches EOF, but we need to make the deinitialization in QUICK_INDEX_MERGE_SELECT destructor also. This is because certain execution strategies can stop scanning without reaching EOF, then then try to do a full table scan on this table. Failure to deinitialize caused the full scan to use (already empty) table->sort and produce zero records. mysql-test/r/index_merge.result: BUG#40974: Incorrect query results when using clause evaluated using range check - Testcase mysql-test/t/index_merge.test: BUG#40974: Incorrect query results when using clause evaluated using range check - Testcase
-
Davi Arnaut authored
-
Davi Arnaut authored
resolve_stack_dump is not able to decode a stack trace produced by glibc's backtrace() functions. The problem is that the stack trace addresses are printed between brackets and the utility is not able to ignore the brackets. The solution is to modify resolve_stack_dump so it can recognize stack trace addresses surrounded by brackets. e.g. [0xdeadbeef]. extra/resolve_stack_dump.c: Skip to after a bracket if one is present in the input.
-