summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <serg@serg.mylan>2004-03-20 14:36:00 +0100
committerunknown <serg@serg.mylan>2004-03-20 14:36:00 +0100
commiteb3ded5665fa43e616d8e02f4a63805848c3747b (patch)
tree24da11aa25768046ee1aea611ef024c0d5c3d5e3
parent5395e2e08a53e364a2a55b876877aaa5fb4d32c6 (diff)
downloadmariadb-git-eb3ded5665fa43e616d8e02f4a63805848c3747b.tar.gz
select @@smth=@@sys_str_var crash fixed
mysql-test/r/variables.result: new test mysql-test/t/ctype_utf8.test: typos fixed mysql-test/t/variables.test: new test sql/mysqld.cc: sys_str_var->value must be not NULL sql/set_var.cc: initialize sys_str_var->value from a constructor sql/set_var.h: initialize sys_str_var->value from a constructor
-rw-r--r--mysql-test/r/variables.result2
-rw-r--r--mysql-test/t/ctype_utf8.test4
-rw-r--r--mysql-test/t/variables.test3
-rw-r--r--sql/mysqld.cc4
-rw-r--r--sql/set_var.cc16
-rw-r--r--sql/set_var.h5
6 files changed, 23 insertions, 11 deletions
diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result
index 0e1babf258b..39d83f8b815 100644
--- a/mysql-test/r/variables.result
+++ b/mysql-test/r/variables.result
@@ -382,6 +382,8 @@ select 1;
1
select @@session.key_buffer_size;
ERROR HY000: Variable 'key_buffer_size' is a GLOBAL variable
+set ft_boolean_syntax = @@init_connect;
+ERROR HY000: Variable 'ft_boolean_syntax' is a GLOBAL variable and should be set with SET GLOBAL
select @@global.max_user_connections,@@local.max_join_size;
@@global.max_user_connections @@session.max_join_size
100 200
diff --git a/mysql-test/t/ctype_utf8.test b/mysql-test/t/ctype_utf8.test
index 08a84df3ff7..964ac84fbbe 100644
--- a/mysql-test/t/ctype_utf8.test
+++ b/mysql-test/t/ctype_utf8.test
@@ -54,7 +54,7 @@ select * from t1;
drop table t1;
#
-# Bug #2366 Wrong utf8 behaviour when data is trancated
+# Bug #2366 Wrong utf8 behaviour when data is truncated
#
set names koi8r;
create table t1 (s1 char(1) character set utf8);
@@ -101,7 +101,7 @@ drop table t1;
#
# Bug 2699
-# UTF8 breaks primary keys for cols > 85 characters
+# UTF8 breaks primary keys for cols > 333 characters
#
--error 1071
create table t1 (a text character set utf8, primary key(a(360)));
diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test
index 1ad171f94f6..c3f7c613005 100644
--- a/mysql-test/t/variables.test
+++ b/mysql-test/t/variables.test
@@ -270,6 +270,9 @@ select 1;
--error 1238
select @@session.key_buffer_size;
+--error 1229
+set ft_boolean_syntax = @@init_connect;
+
#
# swap
#
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 576e33002da..9ce00f78465 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",
@@ -667,11 +669,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},
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);