diff options
author | unknown <bar@bar.mysql.r18.ru> | 2002-10-30 13:05:27 +0400 |
---|---|---|
committer | unknown <bar@bar.mysql.r18.ru> | 2002-10-30 13:05:27 +0400 |
commit | e086000f196ac3314e736d1bb8cacccdaff8412f (patch) | |
tree | 02d07fa2fbe94da3a8fc0a957d5fd4908eeec89f | |
parent | 75dc4d5ce55fde21938ec686a9869ff549004f5a (diff) | |
download | mariadb-git-e086000f196ac3314e736d1bb8cacccdaff8412f.tar.gz |
Preparation to thread specific default charset
-rw-r--r-- | sql/sql_class.cc | 1 | ||||
-rw-r--r-- | sql/sql_class.h | 1 | ||||
-rw-r--r-- | sql/sql_db.cc | 2 | ||||
-rw-r--r-- | sql/sql_yacc.yy | 4 |
4 files changed, 5 insertions, 3 deletions
diff --git a/sql/sql_class.cc b/sql/sql_class.cc index 8de536d066d..887ee262777 100644 --- a/sql/sql_class.cc +++ b/sql/sql_class.cc @@ -108,6 +108,7 @@ THD::THD():user_time(0), fatal_error(0), file_id = 0; cond_count=0; db_charset=default_charset_info; + thd_charset=default_charset_info; mysys_var=0; #ifndef DBUG_OFF dbug_sentry=THD_SENTRY_MAGIC; diff --git a/sql/sql_class.h b/sql/sql_class.h index e38a33f9ea7..d46826c928d 100644 --- a/sql/sql_class.h +++ b/sql/sql_class.h @@ -481,6 +481,7 @@ public: table_map used_tables; USER_CONN *user_connect; CHARSET_INFO *db_charset; + CHARSET_INFO *thd_charset; List <MYSQL_ERROR> warn_list; uint warn_count[(uint) MYSQL_ERROR::WARN_LEVEL_END]; uint total_warn_count, old_total_warn_count; diff --git a/sql/sql_db.cc b/sql/sql_db.cc index 58b12bca00d..25a69f7e51b 100644 --- a/sql/sql_db.cc +++ b/sql/sql_db.cc @@ -592,7 +592,7 @@ bool mysql_change_db(THD *thd, const char *name) strmov(path+unpack_dirname(path,path), MY_DB_OPT_FILE); load_db_opt(path, &create); thd->db_charset=create.table_charset; - + thd->thd_charset=thd->db_charset ? thd->db_charset : default_charset_info; DBUG_RETURN(0); } diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy index a3fe6dd7b79..f22a919b4c6 100644 --- a/sql/sql_yacc.yy +++ b/sql/sql_yacc.yy @@ -3309,13 +3309,13 @@ opt_ignore_lines: /* Common definitions */ text_literal: - TEXT_STRING { $$ = new Item_string($1.str,$1.length,default_charset_info); } + TEXT_STRING { $$ = new Item_string($1.str,$1.length,current_thd->thd_charset); } | UNDERSCORE_CHARSET TEXT_STRING { $$ = new Item_string($2.str,$2.length,Lex->charset); } | text_literal TEXT_STRING { ((Item_string*) $1)->append($2.str,$2.length); }; text_string: - TEXT_STRING { $$= new String($1.str,$1.length,default_charset_info); } + TEXT_STRING { $$= new String($1.str,$1.length,current_thd->thd_charset); } | HEX_NUM { Item *tmp = new Item_varbinary($1.str,$1.length); |