diff options
author | unknown <bell@sanja.is.com.ua> | 2004-03-21 16:39:37 +0200 |
---|---|---|
committer | unknown <bell@sanja.is.com.ua> | 2004-03-21 16:39:37 +0200 |
commit | afbf1bbaa40614b965752c9c8dd2ca28c4428cb0 (patch) | |
tree | 671f644d96ac09df143be022d1644c21f1266959 | |
parent | 5764e4f68462a9b2ded18b6705ef6456f9b4e6b1 (diff) | |
parent | 7b31e57f56117b5bd31d6c4f018a579a71696883 (diff) | |
download | mariadb-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
-rw-r--r-- | mysql-test/r/variables.result | 11 | ||||
-rw-r--r-- | mysql-test/t/ctype_utf8.test | 4 | ||||
-rw-r--r-- | mysql-test/t/variables.test | 12 | ||||
-rw-r--r-- | sql/mysqld.cc | 4 | ||||
-rw-r--r-- | sql/set_var.cc | 30 | ||||
-rw-r--r-- | sql/set_var.h | 5 | ||||
-rw-r--r-- | sql/slave.cc | 2 | ||||
-rw-r--r-- | sql/sql_parse.cc | 2 | ||||
-rw-r--r-- | support-files/my-innodb-heavy-4G.cnf.sh | 8 |
9 files changed, 52 insertions, 26 deletions
diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result index 0e1babf258b..8934cd705b6 100644 --- a/mysql-test/r/variables.result +++ b/mysql-test/r/variables.result @@ -382,6 +382,17 @@ 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 +set global ft_boolean_syntax = @@init_connect; +ERROR 42000: Variable 'ft_boolean_syntax' can't be set to the value of '' +set init_connect = NULL; +ERROR HY000: Variable 'init_connect' is a GLOBAL variable and should be set with SET GLOBAL +set global init_connect = NULL; +set ft_boolean_syntax = @@init_connect; +ERROR HY000: Variable 'ft_boolean_syntax' is a GLOBAL variable and should be set with SET GLOBAL +set global ft_boolean_syntax = @@init_connect; +ERROR 42000: Variable 'ft_boolean_syntax' can't be set to the value of '' 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..26eacb86164 100644 --- a/mysql-test/t/variables.test +++ b/mysql-test/t/variables.test @@ -270,6 +270,18 @@ select 1; --error 1238 select @@session.key_buffer_size; +--error 1229 +set ft_boolean_syntax = @@init_connect; +--error 1231 +set global ft_boolean_syntax = @@init_connect; +--error 1229 +set init_connect = NULL; +set global init_connect = NULL; +--error 1229 +set ft_boolean_syntax = @@init_connect; +--error 1231 +set global 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 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) diff --git a/support-files/my-innodb-heavy-4G.cnf.sh b/support-files/my-innodb-heavy-4G.cnf.sh index 9c772269749..54df6a8bfe6 100644 --- a/support-files/my-innodb-heavy-4G.cnf.sh +++ b/support-files/my-innodb-heavy-4G.cnf.sh @@ -71,7 +71,7 @@ max_connections = 100 # the host will be blocked from connecting to the MySQL server until # "FLUSH HOSTS" has been run or the server was restarted. Invalid # passwords and other errors during the connect phase result in -# increasing this value. See the "Aborted_Connects" status variable for +# increasing this value. See the "Aborted_connects" status variable for # global counter. max_connect_errors = 10 @@ -111,14 +111,14 @@ max_heap_table_size = 64M # Sort buffer is used to perform sorts for some ORDER BY and GROUP BY # queries. If sorted data does not fit into the sort buffer, a disk -# based merge sort is used instead - See "sort_merge_passes". Allocated -# per thread if sort is needed. +# based merge sort is used instead - See the "Sort_merge_passes" +# status variable. Allocated per thread if sort is needed. sort_buffer_size = 8M # This buffer is used for the optimization of full JOINs (JOINs without # indexes). Such JOINs are very bad for performance in most cases # anyway, but setting this variable to a large value reduces the -# performance impact. See the "select_full_join" status variable for a +# performance impact. See the "Select_full_join" status variable for a # count of full JOINs. Allocated per thread if full join is found join_buffer_size = 8M |