Below is the list of changes that have just been committed into a local
5.0 repository of ram. When ram does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet@stripped, 2007-08-02 14:51:03+05:00, ramil@stripped +3 -0
Fix for bug #30200: mysqlbinlog.test: connection_id() not restored under ps-protocol
Problem: thd->thread_specific_used flag is not set executing a statement
containig connection_id() function using PS protocol, that leads to
improper binlog event creation.
Fix: set the flag in the Item_func_connection_id::fix_fields().
sql/item_create.cc@stripped, 2007-08-02 14:51:00+05:00, ramil@stripped +0 -1
Fix for bug #30200: mysqlbinlog.test: connection_id() not restored under ps-protocol
- set the thd->thread_specific_used flag in the
Item_func_connection_id::fix_fields()
to have it properly set using PS protocol as well.
sql/item_func.cc@stripped, 2007-08-02 14:51:00+05:00, ramil@stripped +1 -0
Fix for bug #30200: mysqlbinlog.test: connection_id() not restored under ps-protocol
- set the thd->thread_specific_used flag in the
Item_func_connection_id::fix_fields()
to have it properly set using PS protocol as well.
sql/sql_parse.cc@stripped, 2007-08-02 14:51:00+05:00, ramil@stripped +1 -0
Fix for bug #30200: mysqlbinlog.test: connection_id() not restored under ps-protocol
- reset the thd->thread_specific_used flag in the
mysql_reset_thd_for_next_command().
diff -Nrup a/sql/item_create.cc b/sql/item_create.cc
--- a/sql/item_create.cc 2007-08-01 15:27:00 +05:00
+++ b/sql/item_create.cc 2007-08-02 14:51:00 +05:00
@@ -72,7 +72,6 @@ Item *create_func_connection_id(void)
{
THD *thd= current_thd;
thd->lex->safe_to_cache_query= 0;
- thd->thread_specific_used= TRUE;
return new Item_func_connection_id();
}
diff -Nrup a/sql/item_func.cc b/sql/item_func.cc
--- a/sql/item_func.cc 2007-08-02 05:13:03 +05:00
+++ b/sql/item_func.cc 2007-08-02 14:51:00 +05:00
@@ -649,6 +649,7 @@ bool Item_func_connection_id::fix_fields
{
if (Item_int_func::fix_fields(thd, ref))
return TRUE;
+ thd->thread_specific_used= TRUE;
value= thd->variables.pseudo_thread_id;
return FALSE;
}
diff -Nrup a/sql/sql_parse.cc b/sql/sql_parse.cc
--- a/sql/sql_parse.cc 2007-07-30 20:27:30 +05:00
+++ b/sql/sql_parse.cc 2007-08-02 14:51:00 +05:00
@@ -5847,6 +5847,7 @@ void mysql_reset_thd_for_next_command(TH
SERVER_QUERY_NO_GOOD_INDEX_USED);
DBUG_ASSERT(thd->security_ctx== &thd->main_security_ctx);
thd->tmp_table_used= 0;
+ thd->thread_specific_used= FALSE;
if (!thd->in_sub_stmt)
{
if (opt_bin_log)