- 18 Oct, 2007 1 commit
-
-
unknown authored
The general log write function (general_log_print) uses printf style arguments which need to be pre-processed, meaning that the all arguments are copied to a single buffer and the problem is that the buffer size is constant (1022 characters) but queries can be much larger then this. The solution is to introduce a new log write function that accepts a buffer and it's length as arguments. The function is to be used when a formatted output is not required, which is the case for almost all query write-to-log calls. This is a incompatible change with respect to the log format of prepared statements. mysql-test/r/log_tables.result: Add test case result for Bug#21557 mysql-test/t/log_tables.test: Add test case for Bug#21557 sql/log.cc: Introduce the logger function general_log_write which is similar to general_log_print but accepts a single buffer and the buffer length. The function doesn't perform any formatting and sends the buffer directly to the underlying log handlers. sql/log.h: Introduce the logger function general_log_write. sql/log_event.cc: Pass the query buffer directly to the logger function, formatting is not required on this case. sql/mysql_priv.h: Prototype for the logger function general_log_write. sql/sp_head.cc: Pass the query buffer directly to the logger function, formatting is not required on this case. sql/sql_parse.cc: Pass the buffer directly to the logger function when formatting is not required. sql/sql_prepare.cc: Don't log the statement id, it avoids making a extra copy of the query and the query is not truncated anymore if it exceeds the limit.
-
- 15 Oct, 2007 2 commits
- 12 Oct, 2007 3 commits
-
-
unknown authored
into moksha.com.br:/Users/davi/mysql/mysql-5.1-runtime
-
unknown authored
into moksha.com.br:/Users/davi/mysql/mysql-5.1-runtime sql/sql_handler.cc: Auto merged
-
unknown authored
If mysql_lock_tables fails because the lock was aborted, we need to reset thd->some_tables_delete, otherwise we might loop indefinitely because handler's tables are not closed in a standard way, meaning that close_thread_tables() (which resets some_tables_deleted) is not used. This patch fixes sporadical failures of handler_myisam/innodb tests which were introduced by previous fix for this bug. sql/sql_handler.cc: Properly reset thd->some_tables_deleted if mysql_lock_tables fails for some reason.
-
- 11 Oct, 2007 7 commits
-
-
unknown authored
into weblab.(none):/home/marcsql/TREE/mysql-5.1-27858-b mysql-test/r/log_tables.result: Auto merged
-
unknown authored
Before this patch, failures to write to the log tables (mysql.slow_log and mysql.general_log) were improperly printed (the time was printed twice), or not printed at all. With this patch, failures to write to the log tables is reported in the error log, for all cases of failures. mysql-test/r/log_tables.result: Bug#27858 (Failing to log to a log table doesn't log anything to error log) mysql-test/t/log_tables.test: Bug#27858 (Failing to log to a log table doesn't log anything to error log) sql/log.cc: Bug#27858 (Failing to log to a log table doesn't log anything to error log)
-
unknown authored
"DECLARE CURSOR FOR SHOW ..." is a syntax that currently appears to work, but is untested for some SHOW commands and does not work for other SHOW commands. Since this is an un-intended feature that leaked as a result of a coding bug (in the parser grammar), the correct fix is to fix the grammar to not accept this construct. In other words, "DECLARE CURSOR FOR SHOW <other commands that don't work>" is not considered a bug, and we will not implement other features to make all the SHOW commands usable inside a cursor just because someone exploited a bug. mysql-test/r/sp-error.result: Only allow declaring cursors for SELECT statements to avoid possible further confusion/problems. mysql-test/t/information_schema.test: Only SELECT statements are allowed in cursors. mysql-test/t/sp-error.test: Add test case for Bug#29223. Non-SELECT statements in cursors now yields a parser error. sql/sql_yacc.yy: Rework DECLARE CURSOR statement to not allow non-SELECT statements.
-
unknown authored
mysql_change_user(). The problem was that THD::ull was not reset in THD::cleanup(). The fix is to reset it. sql/sql_class.cc: Reset THD::ull after cleanup to prevent memory corruption. tests/mysql_client_test.c: Add test case for BUG#31418.
-
unknown authored
mysql-test/include/handler.inc: Add test case for Bug 31409 mysql-test/r/handler_innodb.result: Add test case result for InnoDB run of the handler test for Bug 31409 mysql-test/r/handler_myisam.result: Add test case result for MyISAM run of the handler test for Bug 31409
-
unknown authored
into moksha.com.br:/Users/davi/mysql/bugs/31409-5.1 sql/sql_base.cc: Auto merged sql/sql_handler.cc: Auto merged
-
unknown authored
static but it's still used by another compilation unit. Remove static qualifier from do_command definition. sql/sql_parse.cc: do_command is also used by sql_connect.c in 5.1
-
- 10 Oct, 2007 11 commits
-
-
unknown authored
into moksha.com.br:/Users/davi/mysql/mysql-5.1-runtime sql/sql_parse.cc: Post merge fix, the do_command prototype doesn't exist anymore.
-
unknown authored
into moksha.com.br:/Users/davi/mysql/mysql-5.1-runtime sql/sql_parse.cc: Auto merged
-
unknown authored
into moksha.com.br:/Users/davi/mysql/mysql-5.1-runtime mysql-test/r/sp.result: Auto merged mysql-test/t/sp.test: Auto merged sql/sql_parse.cc: Auto merged
-
unknown authored
into moksha.com.br:/Users/davi/mysql/mysql-5.1-runtime
-
unknown authored
into moksha.com.br:/Users/davi/mysql/mysql-5.1-runtime
-
unknown authored
mysql-test/include/handler.inc: Add test case for Bug 21587 mysql-test/r/handler_innodb.result: Add test case result for InnoDB run of the handler test for Bug 21587 mysql-test/r/handler_myisam.result: Add test case result for MyISAM run of the handler test for Bug 21587
-
unknown authored
into moksha.com.br:/Users/davi/mysql/bugs/21587-5.1 sql/sql_handler.cc: Auto merged
-
unknown authored
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/mysql_priv.h: Cleanup: make prepare_new_connection_state() private for module. sql/sql_class.cc: Update THD::options with the respect to SQL_BIG_SELECTS in COM_CHANGE_USER. sql/sql_connect.cc: Cleanup: make prepare_new_connection_state() private for module. tests/mysql_client_test.c: Add a test case BUG#20023.
-
unknown authored
-
unknown authored
into station.:/mnt/raid/alik/MySQL/devel/5.1-rt-merged mysql-test/t/sp.test: Merge. sql/item_func.cc: Merge.
-
unknown authored
libmysqld/lib_sql.cc: Fixed packet length for embedded
-
- 09 Oct, 2007 5 commits
-
-
unknown authored
into moksha.com.br:/Users/davi/mysql/push/bugs/31409-5.0
-
unknown authored
This deadlock occurs when a client issues a HANDLER ... OPEN statement that tries to open a table that has a pending name-lock on it by another client that also needs a name-lock on some other table which is already open and associated to a HANDLER instance owned by the first client. The deadlock happens because the open_table() function will back-off and wait until the name-lock goes away, causing a circular wait if some other name-lock is also pending for one of the open HANDLER tables. Such situation, for example, can be easily repeated by issuing a RENAME TABLE command in such a way that the existing table is already open as a HANDLER table by another client and this client tries to open a HANDLER to the new table name. The solution is to allow handler tables with older versions (marked for flush) to be closed before waiting for the name-lock completion. This is safe because no other name-lock can be issued between the flush and the check for pending name-locks. The test case for this bug is going to be committed into 5.1 because it requires a test feature only avaiable in 5.1 (wait_condition). sql/sql_base.cc: Improve comments in the open_table() function, stating the importance of the handler tables flushing for the back-off process. sql/sql_handler.cc: Allows handler tables flushes when opening new tables in order to avoid potential deadlocks. Add comments explaining the importance of the flush.
-
unknown authored
into moksha.local:/Users/davi/mysql/push/mysql-5.1-runtime include/config-win.h: Auto merged include/my_pthread.h: Auto merged mysys/thr_mutex.c: Auto merged
-
unknown authored
-
unknown authored
into station.:/mnt/raid/alik/MySQL/devel/5.1-rt-merged sql/mysql_priv.h: Auto merged sql/sql_parse.cc: Manual merge/
-
- 08 Oct, 2007 3 commits
- 07 Oct, 2007 2 commits
-
-
unknown authored
into bodhi.(none):/opt/local/work/mysql-5.0-runtime mysql-test/r/sp.result: Auto merged mysql-test/t/sp.test: Auto merged sql/sql_parse.cc: Auto merged
-
unknown authored
into bodhi.(none):/opt/local/work/mysql-5.1-runtime mysql-test/include/mix1.inc: Auto merged mysql-test/r/create.result: Auto merged mysql-test/r/innodb_mysql.result: Auto merged mysql-test/r/sp.result: Auto merged mysql-test/t/sp.test: Auto merged sql/sql_lex.h: Auto merged sql/sql_parse.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_yacc.yy: Auto merged libmysql/libmysql.c: Manual merge.
-
- 05 Oct, 2007 2 commits
-
-
unknown authored
into pilot.mysql.com:/data/msvensson/mysql/my50-r-bug30992
-
unknown authored
when used in a VIEW. The problem was that wrong function (create_tmp_from_item()) was used to create a temporary field for Item_func_sp. The fix is to use create_tmp_from_field(). mysql-test/r/sp.result: Update result file. mysql-test/t/sp.test: Add a test case for BUG#20550. sql/item_func.h: Add a getter for Item_func_sp::sp_result_field. sql/sql_select.cc: Use create_tmp_from_field() to create a temporary field for Item_func_sp.
-
- 04 Oct, 2007 4 commits
-
-
unknown authored
into moksha.local:/Users/davi/mysql/push/mysql-5.0-runtime
-
unknown authored
This bug is a symptom of the way handler's tables are managed. The most different aspect, compared to the conventional behavior, is that the handler's tables are long lived, meaning that their lifetimes are not bounded by the duration of the command that opened them. For this effect the handler code uses its own list (handler_tables instead of open_tables) to hold open handler tables so that the tables won't be closed at the end of the command/statement. Besides the handler_tables list, there is a hash (handler_tables_hash) which is used to associate handler aliases to tables and to refresh the tables upon demand (flush tables). The current implementation doesn't work properly with refreshed tables -- more precisely when flush commands are issued by other initiators. This happens because when a handler open or read statement is being processed, the associated table has to be opened or locked and, for this matter, the open_tables and handler_tables lists are swapped so that the new table being opened is inserted into the handler_tables list. But when opening or locking the table, if the refresh version is different from the thread refresh version then all used tables in the open_tables list (now handler_tables) are refreshed. In the "refreshing" process the handler tables are flushed (closed) without being properly unlinked from the handler hash. The current implementation also fails to properly discard handlers of dropped tables, but this and other problems are going to be addressed in the fixes for bugs 31397 and 31409. The chosen approach tries to properly save and restore the table state so that no table is flushed during the table open and lock operations. The logic is almost the same as before with the list swapping, but with a working glue code. The test case for this bug is going to be committed into 5.1 because it requires a test feature only avaiable in 5.1 (wait_condition). sql/sql_handler.cc: Backup and reset the open_tables and handler_table lists when opening a new handler table and merge the opened table into the handler_tables list afterwards. When locking, do the same but possibly close the table if a refresh is pending.
-
unknown authored
into trift2.:/MySQL/M51/push-5.1 storage/ndb/test/ndbapi/testScanFilter.cpp: Auto merged
-
unknown authored
into trift2.:/MySQL/M50/push-5.0
-