- 09 Mar, 2009 2 commits
-
-
He Zhenxing authored
-
Anurag Shekhar authored
-
- 06 Mar, 2009 4 commits
-
-
Tatiana A. Nurnberg authored
-
He Zhenxing authored
-
He Zhenxing authored
-
He Zhenxing authored
When disk is full, server may waiting for free space while writing binlog, relay-log or MyISAM tables. The server will continue after user have freed some space. But the error message printed was not quite clear about the how often the error message is printed, and there will be a delay before the server continue and user freeing space. And caused users thinking that the server was hanging forever. This patch fixed the problem by making the error messages printed more clear. The error message is split into two part, the first part will only be printed once, and the second part will be printed very 10 times. Message first part: Disk is full writing '<filename>' (Errcode: <errorno>). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space) Message second part: Retry in 60 secs, Message reprinted in 600 secs
-
- 05 Mar, 2009 8 commits
-
-
Luis Soares authored
When using mixed mode the record values stored inside the storage engine differed from the ones computed from the row event. This happened because the prepare_record function was calling empty_record macro causing some don't care bits to be left set. Replacing the empty_record plus explicitly setting defaults with restore_record to restore the record default values fixes this.
-
Tatiana A. Nurnberg authored
Some changes that make things more elegant in 6.0, backported so the code is mostly the same in 5.1, for easier maintainence. sql/set_var.cc: Backporting some changes to 5.1 so the code is mostly the same in both versions. Less to learn!
-
Sergey Glukhov authored
-
Sergey Glukhov authored
-
Guangbao Ni authored
-
Guangbao Ni authored
When binlog_format is STATEMENT and the statement is unsafe before, the unsafe warning/error message was issued without checking whether the SQL_LOG_BIN was turned on or not. Fixed with adding a sql_log_bin_toplevel flag in THD to check whether SQL_LOG_BIN is ON in current session whatever the current is in sp or not. mysql-test/suite/binlog/r/binlog_unsafe.result: Test case result for unsafe warning/error message mysql-test/suite/binlog/t/binlog_unsafe.test: Test case for unsafe message warning/error sql/set_var.cc: Adding a function set_option_log_bin_bit() which specailly handles to the change of SQL_LOG_BIN bit in order to set sql_log_bin_toplevel according to SQL_LOG_BIN current value at the same time. sql/sql_class.cc: Initialize the flag sql_log_bin_toplevel in THD::init(), and add the condition to check whether unsafe ror message was issued. sql/sql_class.h: Add a sql_log_bin_toplevel flag in THD to indicate whether the toplevel SQL_LOG_BIN is
-
Sergey Glukhov authored
set user variable max length on fix_length_and_dec() stage using real value length. mysql-test/r/variables.result: test result mysql-test/t/variables.test: test case sql/item_func.cc: set user variable max length on fix_length_and_dec() stage using real value length.
-
Davi Arnaut authored
The problem was that the server was trying to use the unknown error format string (ER_UNKNOWN_ERROR) to print messages about comments being too long, but the said format string does not accept arguments and will always default to "Unknown error". The solution is to introduce new error messages which are specific to the error conditions so that server wants to signal -- this also means that it's possible to translate those messages. mysql-test/r/strict.result: Update test case result. mysql-test/t/strict.test: Update test case with new errors. sql/share/errmsg.txt: Introduce new errors for long comments. sql/unireg.cc: Use new errors.
-
- 06 Mar, 2009 3 commits
-
-
Kristofer Pettersson authored
-
Kristofer Pettersson authored
-
Narayanan V authored
-
- 05 Mar, 2009 10 commits
-
-
Kristofer Pettersson authored
-
Kristofer Pettersson authored
An unnecessarily restrictive lock were taken on sub-SELECTs during DELETE. During parsing, a global structure is reused for sub-SELECTs and the attribute keeping track of lock options were not reset properly. This patch introduces a new attribute to keep track on the syntactical lock option elements found in a sub-SELECT and then sets the lock options accordingly. Now the sub-SELECTs will try to acquire a READ lock if possible instead of a WRITE lock as inherited from the outer DELETE statement. mysql-test/r/lock.result: Added test case for bug39843 mysql-test/t/lock.test: Added test case for bug39843 sql/sql_lex.cc: * Reset member variable lock_option on each new query. sql/sql_lex.h: * Introduced new member variable 'lock_option' which is keeping track of the syntactical lock option of a (sub-)select query. sql/sql_parse.cc: * Wrote comments to functions. sql/sql_yacc.yy: * Introduced an attribute to keep track of syntactical lock options in sub-selects. * Made sure that the default value TL_READ_DEFAULT is at the begining of each subselect-rule.
-
Kristofer Pettersson authored
This is a back port from 5.1 to 5.0. Fix for BUG 20023: mysql_change_user() resets the value of SQL_BIG_SELECTS. The bug was that SQL_BIG_SELECTS was not properly set in COM_CHANGE_USER. The fix is to update SQL_BIG_SELECTS properly. sql/sql_class.cc: Update THD::options with the respect to SQL_BIG_SELECTS in COM_CHANGE_USER. tests/mysql_client_test.c: Add a test case BUG#20023.
-
Sergey Glukhov authored
remove 'unsigned', 'zerofill' attributes from DATA_TYPE column value. mysql-test/suite/funcs_1/r/is_columns_innodb.result: result fix mysql-test/suite/funcs_1/r/is_columns_memory.result: result fix mysql-test/suite/funcs_1/r/is_columns_myisam.result: result fix sql/sql_show.cc: remove 'unsigned', 'zerofill' attributes from DATA_TYPE column value.
-
Kristofer Pettersson authored
The query cache module did not check for the SQL_NO_CACHE keyword before attempting to query the hash lookup table. This had a small performance impact. By introducing a check on the query string before obtaining the hash mutex we can gain some performance if the SQL_NO_CACHE directive is used often. sql/sql_cache.cc: * Introduced new helper function, has_no_cache_directive, for checking the existance of a SQL_NO_CACHE directive before actual parsing of the query.
-
He Zhenxing authored
-
He Zhenxing authored
-
He Zhenxing authored
Backporting patch to 5.0.
-
Narayanan V authored
The problem here seem to be that when mysql is redirecting stderr to a file, stderr becomes buffered, whereas it is unbuffered by definition. The solution is to unbuffer it by setting buffer to null. sql/log.cc: use setbuf(stderr, NULL) to set the buffer to null. sql/mysqld.cc: use setbuf(stderr, NULL) to set the buffer to null.
-
Staale Smedseng authored
of system errnos when opening a table are masked as ER_FILE_NOT_FOUND. This patch handles this as "Operation failed" as well.
-
- 04 Mar, 2009 5 commits
-
-
Bernt M. Johnsen authored
-
Bernt M. Johnsen authored
-
Dmitry Lenev authored
pushbuild". Under new MTR the server is not restarted for every test, so threads started in the previous test case can show up in the results of SHOW PROCESSLIST statement in this test, causing a test failure. Since we are not really interested in results of SHOW PROCESSLIST in this test but rather in fact that server doesn't crash when executing this statement this fix simply disables output of this statement. mysql-test/r/skip_name_resolve.result: Disable SHOW PROCESSLIST output to make test immune to threads started in previous test cases. mysql-test/t/skip_name_resolve.test: Disable SHOW PROCESSLIST output to make test immune to threads started in previous test cases.
-
Staale Smedseng authored
-
Anurag Shekhar authored
This problem comes while inserting a duplicate row in merge table without key but the child table has a primary key. While forming the error message handler tries to locate the key field which is creating this problem but as there is no key on the merge table there is a segmentation fault. mysql-test/r/merge.result: Updated results with new test for this bug. mysql-test/t/merge.test: Added new test to test error generated from a key on child table where merge table doesn't have any key. storage/myisammrg/ha_myisammrg.cc: Added a new check to see if the value of error key is higher than the number of key in merge table and if it is the error key set to MAX_KEY. The error message generation routine treats MAX_KEY as unknown key and doesn't tries to access this in key_info.
-
- 03 Mar, 2009 8 commits
-
-
Timothy Smith authored
-
Timothy Smith authored
Bug #42152: Race condition in lock_is_table_exclusive() Detailed revision comments: r4005 | marko | 2009-01-20 16:22:36 +0200 (Tue, 20 Jan 2009) | 8 lines branches/5.1: lock_is_table_exclusive(): Acquire kernel_mutex before accessing table->locks and release kernel_mutex before returning from the function. This fixes a portential race condition in the "commit every 10,000 rows" in ALTER TABLE, CREATE INDEX, DROP INDEX, and OPTIMIZE TABLE. (Bug #42152) rb://80 approved by Heikki Tuuri
-
Timothy Smith authored
Bug #41571: MySQL segfaults after innodb recovery Detailed revision comments: r4004 | marko | 2009-01-20 16:19:00 +0200 (Tue, 20 Jan 2009) | 12 lines branches/5.1: Merge r4003 from branches/5.0: rec_set_nth_field(): When the field already is SQL null, do nothing when it is being changed to SQL null. (Bug #41571) Normally, MySQL does not pass "do-nothing" updates to the storage engine. When it does and a column of an InnoDB table that is in ROW_FORMAT=COMPACT is being updated from NULL to NULL, the InnoDB buffer pool will be corrupted without this fix. rb://81 approved by Heikki Tuuri
-
Timothy Smith authored
Bug #42075: dict_load_indexes failure in dict_load_table will corrupt the dictionary cache Detailed revision comments: r3930 | marko | 2009-01-14 15:51:30 +0200 (Wed, 14 Jan 2009) | 4 lines branches/5.1: dict_load_table(): If dict_load_indexes() fails, invoke dict_table_remove_from_cache() instead of dict_mem_table_free(), so that the data dictionary will not point to freed data. (Bug #42075, Issue #153, rb://76 approved by Heikki Tuuri)
-
Timothy Smith authored
Bug #38187: Error 153 when creating savepoints Detailed revision comments: r3911 | sunny | 2009-01-13 14:15:24 +0200 (Tue, 13 Jan 2009) | 13 lines branches/5.1: Fix Bug#38187 Error 153 when creating savepoints InnoDB previously treated savepoints as a stack e.g., SAVEPOINT a; SAVEPOINT b; SAVEPOINT c; SAVEPOINT b; <- This would delete b and c. This fix changes the behavior to: SAVEPOINT a; SAVEPOINT b; SAVEPOINT c; SAVEPOINT b; <- Does not delete savepoint c
-
Timothy Smith authored
Bug #41571: MySQL segfaults after innodb recovery This 5.0 fix will not be pushed into 5.1; a separate fix (from innodb-5.1-ss4007) will be pushed into 5.1+. Detailed revision comments: r4003 | marko | 2009-01-20 16:12:50 +0200 (Tue, 20 Jan 2009) | 10 lines branches/5.0: rec_set_nth_field(): When the field already is SQL null, do nothing when it is being changed to SQL null. (Bug #41571) Normally, MySQL does not pass "do-nothing" updates to the storage engine. When it does and a column of an InnoDB table that is in ROW_FORMAT=COMPACT is being updated from NULL to NULL, the InnoDB buffer pool will be corrupted without this fix. rb://81 approved by Heikki Tuuri
-
Timothy Smith authored
Bug #18828: If InnoDB runs out of undo slots, it returns misleading 'table is full' This is a backport of code already in 5.1+. The error message change referred to in the detailed revision comments is still pending. Detailed revision comments: r3937 | calvin | 2009-01-15 03:11:56 +0200 (Thu, 15 Jan 2009) | 17 lines branches/5.0: Backport the fix for Bug#18828. Return DB_TOO_MANY_CONCURRENT_TRXS when we run out of UNDO slots in the rollback segment. The backport is requested by MySQL under bug#41529 - Safe handling of InnoDB running out of undo log slots. This is a partial fix since the MySQL error code requested to properly report the error condition back to the client has not yet materialized. Currently we have #ifdef'd the error code translation in ha_innodb.cc. This will have to be changed as and when MySQl add the new requested code or an equivalent code that we can then use. Given the above, currently we will get the old behavior, not the "fixed" and intended behavior. Approved by: Heikki (on IM)
-
Timothy Smith authored
Bug #39939: DROP TABLE/DISCARD TABLESPACE takes long time in buf_LRU_invalidate_tablespace() This was already fixed in 5.1+; this is a backport to 5.0. Detailed revision comments: r2743 | inaam | 2008-10-08 22:18:12 +0300 (Wed, 08 Oct 2008) | 13 lines branches/5.0: Backport of r2742 from branches/5.1: Fix Bug#39939 DROP TABLE/DISCARD TABLESPACE takes long time in buf_LRU_invalidate_tablespace() Improve implementation of buf_LRU_invalidate_tablespace by attempting hash index drop in batches instead of doing it one by one. Reviewed by: Heikki, Sunny, Marko Approved by: Heikki
-