summaryrefslogtreecommitdiff
path: root/sql/set_var.cc
diff options
context:
space:
mode:
authorunknown <bar@bar.mysql.r18.ru>2003-03-05 12:37:39 +0400
committerunknown <bar@bar.mysql.r18.ru>2003-03-05 12:37:39 +0400
commit64d48cd6d1d668256bdb639c6467be6112c58164 (patch)
treea674ef2b385da9ac117d9477fa498143f627ece2 /sql/set_var.cc
parentb7b75213dc2df3d8095889737cf62fac66e9cf9c (diff)
downloadmariadb-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.cc18
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*) "";
}