summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <jani@a88-113-38-195.elisa-laajakaista.fi>2007-12-20 14:10:07 +0200
committerunknown <jani@a88-113-38-195.elisa-laajakaista.fi>2007-12-20 14:10:07 +0200
commitefd91dff2cb010e792bea1e812d95513be24504a (patch)
treec0de2291e6e78eb213021df1ea78f64643108844
parent389dcccbed58122bb41dd0ad29aab69178592266 (diff)
downloadmariadb-git-efd91dff2cb010e792bea1e812d95513be24504a.tar.gz
Fixes to merge.
mysql-test/r/maria.result: Fixed result file. The results will be fixed by Sergei's patch. mysql-test/t/variables.test: Fixed result file. The results will be fixed by Sergei's patch. mysys/my_getopt.c: Fixed a problem with manual merge. sql/set_var.cc: Fixed a problem with manual merge. sql/set_var.h: Fixed a problem with manual merge. sql/sql_plugin.cc: Removed unneccessary function call. This was forgotten from a previous patch.
-rw-r--r--mysql-test/r/maria.result4
-rw-r--r--mysql-test/t/variables.test4
-rw-r--r--mysys/my_getopt.c42
-rw-r--r--sql/set_var.cc19
-rw-r--r--sql/set_var.h18
-rw-r--r--sql/sql_plugin.cc1
6 files changed, 57 insertions, 31 deletions
diff --git a/mysql-test/r/maria.result b/mysql-test/r/maria.result
index fb138f4fe8f..ca72c687ec9 100644
--- a/mysql-test/r/maria.result
+++ b/mysql-test/r/maria.result
@@ -2051,10 +2051,10 @@ maria_block_size 8192
maria_checkpoint_interval 30
maria_log_file_size 4294959104
maria_log_purge_type immediate
-maria_max_sort_file_size 9223372036853727232
+maria_max_sort_file_size 9223372036854775807
maria_page_checksum ON
maria_pagecache_age_threshold 300
-maria_pagecache_buffer_size 8384512
+maria_pagecache_buffer_size 8388572
maria_pagecache_division_limit 100
maria_repair_threads 1
maria_sort_buffer_size 8388608
diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test
index a13bbec7952..c1580390f63 100644
--- a/mysql-test/t/variables.test
+++ b/mysql-test/t/variables.test
@@ -141,9 +141,9 @@ set GLOBAL myisam_max_sort_file_size=2000000;
show global variables like 'myisam_max_sort_file_size';
select * from information_schema.global_variables where variable_name like 'myisam_max_sort_file_size';
set GLOBAL myisam_max_sort_file_size=default;
---replace_result 2146435072 FILE_SIZE 9223372036853727232 FILE_SIZE
+--replace_result 2147483647 FILE_SIZE 9223372036854775807 FILE_SIZE
show variables like 'myisam_max_sort_file_size';
---replace_result 2146435072 FILE_SIZE 9223372036853727232 FILE_SIZE
+--replace_result 2147483647 FILE_SIZE 9223372036854775807 FILE_SIZE
select * from information_schema.session_variables where variable_name like 'myisam_max_sort_file_size';
set global net_retry_count=10, session net_retry_count=10;
diff --git a/mysys/my_getopt.c b/mysys/my_getopt.c
index 796062f75b0..63ef57300fa 100644
--- a/mysys/my_getopt.c
+++ b/mysys/my_getopt.c
@@ -27,10 +27,15 @@ typedef void (*init_func_p)(const struct my_option *option, uchar* *variable,
static void default_reporter(enum loglevel level, const char *format, ...);
my_error_reporter my_getopt_error_reporter= &default_reporter;
-static int findopt(char *, uint, const struct my_option **, char **);
-my_bool getopt_compare_strings(const char *, const char *, uint);
+static int findopt(char *optpat, uint length,
+ const struct my_option **opt_res,
+ char **ffname);
+my_bool getopt_compare_strings(const char *s,
+ const char *t,
+ uint length);
static longlong getopt_ll(char *arg, const struct my_option *optp, int *err);
-static ulonglong getopt_ull(char *, const struct my_option *, int *);
+static ulonglong getopt_ull(char *arg, const struct my_option *optp,
+ int *err);
static double getopt_double(char *arg, const struct my_option *optp, int *err);
static void init_variables(const struct my_option *options,
init_func_p init_one_value);
@@ -38,7 +43,8 @@ static void init_one_value(const struct my_option *option, uchar* *variable,
longlong value);
static void fini_one_value(const struct my_option *option, uchar* *variable,
longlong value);
-static int setval(const struct my_option *, uchar **, char *, my_bool);
+static int setval(const struct my_option *opts, uchar **value, char *argument,
+ my_bool set_maximum_value);
static char *check_struct_option(char *cur_arg, char *key_name);
/*
@@ -861,7 +867,7 @@ ulonglong getopt_ull_limit_value(ulonglong num, const struct my_option *optp,
bool *fix)
{
bool adjusted= FALSE;
- ulonglong old= num;
+ ulonglong old= num, mod;
char buf1[255], buf2[255];
if ((ulonglong) num > (ulonglong) optp->max_value &&
@@ -886,6 +892,8 @@ ulonglong getopt_ull_limit_value(ulonglong num, const struct my_option *optp,
num= ((ulonglong) ULONG_MAX);
adjusted= TRUE;
}
+#else
+ num= min(num, LONG_MAX);
#endif
break;
default:
@@ -951,41 +959,35 @@ static double getopt_double(char *arg, const struct my_option *optp, int *err)
SYNOPSIS
init_one_value()
- optp Option to initialize
+ option Option to initialize
value Pointer to variable
*/
-static void init_one_value(const struct my_option *optp, uchar* *variable,
+static void init_one_value(const struct my_option *option, uchar* *variable,
longlong value)
{
DBUG_ENTER("init_one_value");
- switch ((optp->var_type & GET_TYPE_MASK)) {
+ switch ((option->var_type & GET_TYPE_MASK)) {
case GET_BOOL:
*((my_bool*) variable)= (my_bool) value;
break;
case GET_INT:
- *((int*) variable)= (int) getopt_ll_limit_value(value, optp, NULL);
- break;
- case GET_UINT:
- *((uint*) variable)= (uint) getopt_ull_limit_value(value, optp, NULL);
+ *((int*) variable)= (int) value;
break;
+ case GET_UINT: /* Fall through */
case GET_ENUM:
*((uint*) variable)= (uint) value;
break;
case GET_LONG:
- *((long*) variable)= (long) getopt_ll_limit_value(value, optp, NULL);
+ *((long*) variable)= (long) value;
break;
case GET_ULONG:
- *((ulong*) variable)= (ulong) getopt_ull_limit_value(value, optp, NULL);
+ *((ulong*) variable)= (ulong) value;
break;
case GET_LL:
- *((longlong*) variable)= (longlong) getopt_ll_limit_value(value, optp,
- NULL);
- break;
- case GET_ULL:
- *((ulonglong*) variable)= (ulonglong) getopt_ull_limit_value(value, optp,
- NULL);
+ *((longlong*) variable)= (longlong) value;
break;
+ case GET_ULL: /* Fall through */
case GET_SET:
*((ulonglong*) variable)= (ulonglong) value;
break;
diff --git a/sql/set_var.cc b/sql/set_var.cc
index eb3b5c0b2e1..f0172650a28 100644
--- a/sql/set_var.cc
+++ b/sql/set_var.cc
@@ -331,10 +331,12 @@ static sys_var_thd_ulong sys_myisam_repair_threads(&vars, "myisam_repair_t
static sys_var_thd_ulong sys_myisam_sort_buffer_size(&vars, "myisam_sort_buffer_size", &SV::myisam_sort_buff_size);
static sys_var_bool_ptr sys_myisam_use_mmap(&vars, "myisam_use_mmap",
&opt_myisam_use_mmap);
+
static sys_var_thd_enum sys_myisam_stats_method(&vars, "myisam_stats_method",
&SV::myisam_stats_method,
&myisam_stats_method_typelib,
NULL);
+
static sys_var_thd_ulong sys_net_buffer_length(&vars, "net_buffer_length",
&SV::net_buffer_length);
static sys_var_thd_ulong sys_net_read_timeout(&vars, "net_read_timeout",
@@ -387,10 +389,10 @@ static sys_var_thd_ulong sys_trans_alloc_block_size(&vars, "transaction_alloc_bl
static sys_var_thd_ulong sys_trans_prealloc_size(&vars, "transaction_prealloc_size",
&SV::trans_prealloc_size,
0, fix_trans_mem_root);
-sys_var_thd_enum sys_thread_handling(&vars, "thread_handling",
- &SV::thread_handling,
- &thread_handling_typelib,
- NULL);
+sys_var_enum_const sys_thread_handling(&vars, "thread_handling",
+ &SV::thread_handling,
+ &thread_handling_typelib,
+ NULL);
#ifdef HAVE_QUERY_CACHE
static sys_var_long_ptr sys_query_cache_limit(&vars, "query_cache_limit",
@@ -1229,6 +1231,13 @@ uchar *sys_var_enum::value_ptr(THD *thd, enum_var_type type, LEX_STRING *base)
return (uchar*) enum_names->type_names[*value];
}
+
+uchar *sys_var_enum_const::value_ptr(THD *thd, enum_var_type type,
+ LEX_STRING *base)
+{
+ return (uchar*) enum_names->type_names[global_system_variables.*offset];
+}
+
bool sys_var_thd_ulong::check(THD *thd, set_var *var)
{
return (get_unsigned(thd, var) ||
@@ -1982,7 +1991,6 @@ LEX_STRING default_key_cache_base= {(char *) "default", 7 };
static KEY_CACHE zero_key_cache;
-
KEY_CACHE *get_key_cache(LEX_STRING *cache_name)
{
safe_mutex_assert_owner(&LOCK_global_system_variables);
@@ -3701,7 +3709,6 @@ void sys_var_trust_routine_creators::warn_deprecated(THD *thd)
"'log_bin_trust_function_creators'");
}
-
void sys_var_trust_routine_creators::set_default(THD *thd, enum_var_type type)
{
warn_deprecated(thd);
diff --git a/sql/set_var.h b/sql/set_var.h
index c98facc9f84..723b31eb188 100644
--- a/sql/set_var.h
+++ b/sql/set_var.h
@@ -305,6 +305,24 @@ public:
};
+class sys_var_enum_const :public sys_var
+{
+ ulong SV::*offset;
+ TYPELIB *enum_names;
+public:
+ sys_var_enum_const(sys_var_chain *chain, const char *name_arg, ulong SV::*offset_arg,
+ TYPELIB *typelib, sys_after_update_func func)
+ :sys_var(name_arg,func), offset(offset_arg), enum_names(typelib)
+ { chain_sys_var(chain); }
+ bool check(THD *thd, set_var *var) { return 1; }
+ bool update(THD *thd, set_var *var) { return 1; }
+ SHOW_TYPE show_type() { return SHOW_CHAR; }
+ bool check_update_type(Item_result type) { return 1; }
+ bool is_readonly() const { return 1; }
+ uchar *value_ptr(THD *thd, enum_var_type type, LEX_STRING *base);
+};
+
+
class sys_var_thd :public sys_var
{
public:
diff --git a/sql/sql_plugin.cc b/sql/sql_plugin.cc
index a602ff6ada6..7ed3cd057d5 100644
--- a/sql/sql_plugin.cc
+++ b/sql/sql_plugin.cc
@@ -1937,7 +1937,6 @@ static int check_func_longlong(THD *thd, struct st_mysql_sys_var *var,
struct my_option options;
value->val_int(value, &tmp);
plugin_opt_set_limits(&options, var);
- *(ulonglong *)save= getopt_ull_limit_value(tmp, &options, &fixed);
if (var->flags & PLUGIN_VAR_UNSIGNED)
*(ulonglong *)save= getopt_ull_limit_value((ulonglong) tmp, &options,