summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <bell@sanja.is.com.ua>2004-03-21 16:39:37 +0200
committerunknown <bell@sanja.is.com.ua>2004-03-21 16:39:37 +0200
commitafbf1bbaa40614b965752c9c8dd2ca28c4428cb0 (patch)
tree671f644d96ac09df143be022d1644c21f1266959 /sql
parent5764e4f68462a9b2ded18b6705ef6456f9b4e6b1 (diff)
parent7b31e57f56117b5bd31d6c4f018a579a71696883 (diff)
downloadmariadb-git-afbf1bbaa40614b965752c9c8dd2ca28c4428cb0.tar.gz
Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1
into sanja.is.com.ua:/home/bell/mysql/bk/work-select_list-4.1 sql/sql_parse.cc: Auto merged
Diffstat (limited to 'sql')
-rw-r--r--sql/mysqld.cc4
-rw-r--r--sql/set_var.cc30
-rw-r--r--sql/set_var.h5
-rw-r--r--sql/slave.cc2
-rw-r--r--sql/sql_parse.cc2
5 files changed, 23 insertions, 20 deletions
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index fc50b8c5c6e..525f3db3aff 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -2189,10 +2189,14 @@ static int init_common_variables(const char *conf_file_name, int argc,
sys_init_connect.value_length= 0;
if ((sys_init_connect.value= opt_init_connect))
sys_init_connect.value_length= strlen(opt_init_connect);
+ else
+ sys_init_connect.value=my_strdup("",MYF(0));
sys_init_slave.value_length= 0;
if ((sys_init_slave.value= opt_init_slave))
sys_init_slave.value_length= strlen(opt_init_slave);
+ else
+ sys_init_slave.value=my_strdup("",MYF(0));
if (use_temp_pool && bitmap_init(&temp_pool,0,1024,1))
return 1;
diff --git a/sql/set_var.cc b/sql/set_var.cc
index 98e59db7558..8fe15b700f9 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -121,7 +121,8 @@ sys_var_character_set_server sys_character_set_server("character_set_server");
sys_var_str sys_charset_system("character_set_system",
sys_check_charset,
sys_update_charset,
- sys_set_default_charset);
+ sys_set_default_charset,
+ (char *)my_charset_utf8_general_ci.name);
sys_var_character_set_database sys_character_set_database("character_set_database");
sys_var_character_set_client sys_character_set_client("character_set_client");
sys_var_character_set_connection sys_character_set_connection("character_set_connection");
@@ -150,13 +151,14 @@ sys_var_long_ptr sys_flush_time("flush_time", &flush_time);
sys_var_str sys_ft_boolean_syntax("ft_boolean_syntax",
sys_check_ftb_syntax,
sys_update_ftb_syntax,
- sys_default_ftb_syntax);
+ sys_default_ftb_syntax,
+ ft_boolean_syntax);
sys_var_str sys_init_connect("init_connect", 0,
sys_update_init_connect,
- sys_default_init_connect);
+ sys_default_init_connect,0);
sys_var_str sys_init_slave("init_slave", 0,
sys_update_init_slave,
- sys_default_init_slave);
+ sys_default_init_slave,0);
sys_var_thd_ulong sys_interactive_timeout("interactive_timeout",
&SV::net_interactive_timeout);
sys_var_thd_ulong sys_join_buffer_size("join_buffer_size",
@@ -665,11 +667,11 @@ struct show_var_st init_vars[]= {
{sys_join_buffer_size.name, (char*) &sys_join_buffer_size, SHOW_SYS},
{sys_key_buffer_size.name, (char*) &sys_key_buffer_size, SHOW_SYS},
{sys_key_cache_age_threshold.name, (char*) &sys_key_cache_age_threshold,
- SHOW_SYS},
+ SHOW_SYS},
{sys_key_cache_block_size.name, (char*) &sys_key_cache_block_size,
- SHOW_SYS},
+ SHOW_SYS},
{sys_key_cache_division_limit.name, (char*) &sys_key_cache_division_limit,
- SHOW_SYS},
+ SHOW_SYS},
{"language", language, SHOW_CHAR},
{"large_files_support", (char*) &opt_large_files, SHOW_BOOL},
{sys_license.name, (char*) &sys_license, SHOW_SYS},
@@ -833,15 +835,11 @@ bool sys_var_str::check(THD *thd, set_var *var)
bool update_sys_var_str(sys_var_str *var_str, rw_lock_t *var_mutex,
set_var *var)
{
- char *res= 0, *old_value;
- uint new_length= 0;
- /* If the string is "", delete old init command */
- if (var && (new_length= var->value->str_value.length()))
- {
- if (!(res= my_strdup_with_length((byte*) var->value->str_value.ptr(),
- new_length, MYF(0))))
- return 1;
- }
+ char *res= 0, *old_value=(char *)(var ? var->value->str_value.ptr() : 0);
+ uint new_length= (var ? var->value->str_value.length() : 0);
+ if (!old_value) old_value="";
+ if (!(res= my_strdup_with_length(old_value, new_length, MYF(0))))
+ return 1;
/*
Replace the old value in such a way that the any thread using
the value will work.
diff --git a/sql/set_var.h b/sql/set_var.h
index ac20742da8c..8f21c5a729f 100644
--- a/sql/set_var.h
+++ b/sql/set_var.h
@@ -139,8 +139,9 @@ public:
sys_var_str(const char *name_arg,
sys_check_func check_func_arg,
sys_update_func update_func_arg,
- sys_set_default_func set_default_func_arg)
- :sys_var(name_arg), check_func(check_func_arg),
+ sys_set_default_func set_default_func_arg,
+ char *value_arg)
+ :sys_var(name_arg), check_func(check_func_arg), value(value_arg),
update_func(update_func_arg),set_default_func(set_default_func_arg)
{}
bool check(THD *thd, set_var *var);
diff --git a/sql/slave.cc b/sql/slave.cc
index 37afe456ce3..5493d422d37 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -3188,7 +3188,7 @@ log '%s' at position %s, relay log '%s' position: %s", RPL_LOG_NAME,
llstr(rli->group_relay_log_pos,llbuff1));
/* execute init_slave variable */
- if (sys_init_slave.value)
+ if (sys_init_slave.value_length)
{
execute_init_command(thd, &sys_init_slave, &LOCK_sys_init_slave);
if (thd->query_error)
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index 43129f7c3f1..d21f20d1697 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -1000,7 +1000,7 @@ pthread_handler_decl(handle_one_connection,arg)
net->compress=1; // Use compression
thd->version= refresh_version;
- if (sys_init_connect.value && !(thd->master_access & SUPER_ACL))
+ if (sys_init_connect.value_length && !(thd->master_access & SUPER_ACL))
{
execute_init_command(thd, &sys_init_connect, &LOCK_sys_init_connect);
if (thd->query_error)