From 8e2b68c3cdf44b899b71829b90f4cb1a3fec53bd Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 9 Apr 2007 17:58:56 +0500 Subject: Bug#22648 LC_TIME_NAMES: Setting GLOBAL has no effect Problem: setting/displaying @@LC_TIME_NAMES didn't distinguish between GLOBAL and SESSION variable types - always SESSION variable was set/shonw. Fix: set either global or session value. Also, "mysqld --lc-time-names" was added to set "global default" value. mysql-test/r/variables.result: Adding test cases mysql-test/t/variables.test: Adding test cases sql/mysql_priv.h: Declaring variable for global default. sql/mysqld.cc: Adding --lc-time-names sql/set_var.cc: Distinguish between GLOBAL and SESSION variables. sql/sql_class.cc: Don't initialize to en_US, use global_system_variables value instead. --- sql/set_var.cc | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'sql/set_var.cc') diff --git a/sql/set_var.cc b/sql/set_var.cc index 46c2a775d8a..d4dcfafe522 100644 --- a/sql/set_var.cc +++ b/sql/set_var.cc @@ -2825,7 +2825,10 @@ bool sys_var_thd_lc_time_names::check(THD *thd, set_var *var) bool sys_var_thd_lc_time_names::update(THD *thd, set_var *var) { - thd->variables.lc_time_names= var->save_result.locale_value; + if (var->type == OPT_GLOBAL) + global_system_variables.lc_time_names= var->save_result.locale_value; + else + thd->variables.lc_time_names= var->save_result.locale_value; return 0; } @@ -2833,13 +2836,18 @@ bool sys_var_thd_lc_time_names::update(THD *thd, set_var *var) byte *sys_var_thd_lc_time_names::value_ptr(THD *thd, enum_var_type type, LEX_STRING *base) { - return (byte *)(thd->variables.lc_time_names->name); + return type == OPT_GLOBAL ? + (byte *) global_system_variables.lc_time_names->name : + (byte *) thd->variables.lc_time_names->name; } void sys_var_thd_lc_time_names::set_default(THD *thd, enum_var_type type) { - thd->variables.lc_time_names = &my_locale_en_US; + if (type == OPT_GLOBAL) + global_system_variables.lc_time_names= my_default_lc_time_names; + else + thd->variables.lc_time_names= global_system_variables.lc_time_names; } /* -- cgit v1.2.1