summaryrefslogtreecommitdiff
path: root/sql/sql_parse.cc
diff options
context:
space:
mode:
authorunknown <lars/lthalmann@mysql.com/dl145h.mysql.com>2006-11-07 12:02:53 +0100
committerunknown <lars/lthalmann@mysql.com/dl145h.mysql.com>2006-11-07 12:02:53 +0100
commitc6de4d1c3baa5a27dd6f4ba2dd58c85e627b6536 (patch)
tree214efbfcc03cc6ef5dd9efc1421eda2a2bdd3e4f /sql/sql_parse.cc
parent024a1781a6310383c1e352d483e7a701d564d051 (diff)
parentfff7e9199d9f0c150d35b54c3b81dfc9ec0b75c0 (diff)
downloadmariadb-git-c6de4d1c3baa5a27dd6f4ba2dd58c85e627b6536.tar.gz
Merge mysql.com:/users/lthalmann/bkroot/mysql-5.0-rpl
into mysql.com:/users/lthalmann/bk/MERGE/mysql-5.0-merge BitKeeper/etc/collapsed: auto-union mysql-test/r/ctype_utf8.result: Auto merged sql/field.cc: Auto merged sql/sql_parse.cc: Auto merged
Diffstat (limited to 'sql/sql_parse.cc')
-rw-r--r--sql/sql_parse.cc20
1 files changed, 18 insertions, 2 deletions
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 3a107c2296c..e3ee9f340cf 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -2503,7 +2503,23 @@ mysql_execute_command(THD *thd)
{
/* we warn the slave SQL thread */
my_message(ER_SLAVE_IGNORED_TABLE, ER(ER_SLAVE_IGNORED_TABLE), MYF(0));
- reset_one_shot_variables(thd);
+ if (thd->one_shot_set)
+ {
+ /*
+ It's ok to check thd->one_shot_set here:
+
+ The charsets in a MySQL 5.0 slave can change by both a binlogged
+ SET ONE_SHOT statement and the event-internal charset setting,
+ and these two ways to change charsets do not seems to work
+ together.
+
+ At least there seems to be problems in the rli cache for
+ charsets if we are using ONE_SHOT. Note that this is normally no
+ problem because either the >= 5.0 slave reads a 4.1 binlog (with
+ ONE_SHOT) *or* or 5.0 binlog (without ONE_SHOT) but never both."
+ */
+ reset_one_shot_variables(thd);
+ }
DBUG_RETURN(0);
}
}
@@ -6121,7 +6137,7 @@ TABLE_LIST *st_select_lex::add_table_to_list(THD *thd,
ptr->alias= alias_str;
if (lower_case_table_names && table->table.length)
- my_casedn_str(files_charset_info, table->table.str);
+ table->table.length= my_casedn_str(files_charset_info, table->table.str);
ptr->table_name=table->table.str;
ptr->table_name_length=table->table.length;
ptr->lock_type= lock_type;