diff options
author | unknown <bar@bar.mysql.r18.ru> | 2003-03-05 12:37:39 +0400 |
---|---|---|
committer | unknown <bar@bar.mysql.r18.ru> | 2003-03-05 12:37:39 +0400 |
commit | 64d48cd6d1d668256bdb639c6467be6112c58164 (patch) | |
tree | a674ef2b385da9ac117d9477fa498143f627ece2 /sql/set_var.cc | |
parent | b7b75213dc2df3d8095889737cf62fac66e9cf9c (diff) | |
download | mariadb-git-64d48cd6d1d668256bdb639c6467be6112c58164.tar.gz |
SET NAMES has been extended to support optional collation:
SET NAMES <charset name> [COLLATE <collation name>]
Diffstat (limited to 'sql/set_var.cc')
-rw-r--r-- | sql/set_var.cc | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/sql/set_var.cc b/sql/set_var.cc index 89e86471f67..0c73da992e1 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -104,7 +104,7 @@ sys_var_str sys_charset("character_set", sys_check_charset, sys_update_charset, sys_set_default_charset); -sys_var_thd_client_charset sys_client_charset("client_character_set"); +sys_var_client_collation sys_client_collation("client_collation"); sys_var_thd_conv_charset sys_convert_charset("convert_character_set"); sys_var_bool_ptr sys_concurrent_insert("concurrent_insert", &myisam_concurrent_insert); @@ -332,7 +332,7 @@ sys_var *sys_variables[]= &sys_binlog_cache_size, &sys_buffer_results, &sys_bulk_insert_buff_size, - &sys_client_charset, + &sys_client_collation, &sys_concurrent_insert, &sys_connect_timeout, &sys_convert_charset, @@ -439,7 +439,7 @@ struct show_var_st init_vars[]= { {sys_bulk_insert_buff_size.name,(char*) &sys_bulk_insert_buff_size,SHOW_SYS}, {sys_charset.name, (char*) &sys_charset, SHOW_SYS}, {"character_sets", (char*) &charsets_list, SHOW_CHAR_PTR}, - {sys_client_charset.name, (char*) &sys_client_charset, SHOW_SYS}, + {sys_client_collation.name, (char*) &sys_client_collation, SHOW_SYS}, {sys_concurrent_insert.name,(char*) &sys_concurrent_insert, SHOW_SYS}, {sys_connect_timeout.name, (char*) &sys_connect_timeout, SHOW_SYS}, {sys_convert_charset.name, (char*) &sys_convert_charset, SHOW_SYS}, @@ -1177,7 +1177,7 @@ byte *sys_var_thd_conv_charset::value_ptr(THD *thd, enum_var_type type) } -bool sys_var_thd_client_charset::check(THD *thd, set_var *var) +bool sys_var_client_collation::check(THD *thd, set_var *var) { CHARSET_INFO *tmp; char buff[80]; @@ -1187,14 +1187,14 @@ bool sys_var_thd_client_charset::check(THD *thd, set_var *var) { var->save_result.charset= (var->type != OPT_GLOBAL ? global_system_variables.thd_charset - : default_charset_info); + : thd->db_charset); return 0; } if (!(res=var->value->val_str(&str))) res= &empty_string; - if (!(tmp=get_charset_by_csname(res->c_ptr(),MY_CS_PRIMARY,MYF(0)))) + if (!(tmp=get_charset_by_name(res->c_ptr(),MYF(0)))) { my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), res->c_ptr()); return 1; @@ -1203,7 +1203,7 @@ bool sys_var_thd_client_charset::check(THD *thd, set_var *var) return 0; } -bool sys_var_thd_client_charset::update(THD *thd, set_var *var) +bool sys_var_client_collation::update(THD *thd, set_var *var) { if (var->type == OPT_GLOBAL) global_system_variables.thd_charset= var->save_result.charset; @@ -1217,12 +1217,12 @@ bool sys_var_thd_client_charset::update(THD *thd, set_var *var) } -byte *sys_var_thd_client_charset::value_ptr(THD *thd, enum_var_type type) +byte *sys_var_client_collation::value_ptr(THD *thd, enum_var_type type) { CHARSET_INFO *cs= ((type == OPT_GLOBAL) ? global_system_variables.thd_charset : thd->variables.thd_charset); - return cs ? (byte*) cs->csname : (byte*) ""; + return cs ? (byte*) cs->name : (byte*) ""; } |