mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
Bug#31177: Server variables can't be set to their current values
additional fixes for 64-bit --- Merge mysql.com:/misc/mysql/31177/50-31177 into mysql.com:/misc/mysql/31177/51-31177 --- Bug#31177: Server variables can't be set to their current values additional 5.1 fixes (for plugins) mysql-test/t/variables.test: replace 32-bit and 64-bit values --- manual merge mysys/my_getopt.c: 'mod' no longer used. on 64-bit, limit to (signed) (LONG)LONG_MAX to prevent badness in classes using longlong. sql/sql_plugin.cc: handle signedness in plugin-vars so we won't hit an assert() in getopt_*_limit_value()
This commit is contained in:
@@ -1880,7 +1880,13 @@ static int check_func_int(THD *thd, struct st_mysql_sys_var *var,
|
||||
struct my_option options;
|
||||
value->val_int(value, &tmp);
|
||||
plugin_opt_set_limits(&options, var);
|
||||
*(int *)save= (int) getopt_ull_limit_value(tmp, &options, &fixed);
|
||||
|
||||
if (var->flags & PLUGIN_VAR_UNSIGNED)
|
||||
*(uint *)save= (uint) getopt_ull_limit_value((ulonglong) tmp, &options,
|
||||
&fixed);
|
||||
else
|
||||
*(int *)save= (int) getopt_ll_limit_value(tmp, &options, &fixed);
|
||||
|
||||
if (fixed)
|
||||
{
|
||||
char buf[22];
|
||||
@@ -1902,7 +1908,13 @@ static int check_func_long(THD *thd, struct st_mysql_sys_var *var,
|
||||
struct my_option options;
|
||||
value->val_int(value, &tmp);
|
||||
plugin_opt_set_limits(&options, var);
|
||||
*(long *)save= (long) getopt_ull_limit_value(tmp, &options, &fixed);
|
||||
|
||||
if (var->flags & PLUGIN_VAR_UNSIGNED)
|
||||
*(ulong *)save= (ulong) getopt_ull_limit_value((ulonglong) tmp, &options,
|
||||
&fixed);
|
||||
else
|
||||
*(long *)save= (long) getopt_ll_limit_value(tmp, &options, &fixed);
|
||||
|
||||
if (fixed)
|
||||
{
|
||||
char buf[22];
|
||||
@@ -1925,6 +1937,13 @@ static int check_func_longlong(THD *thd, struct st_mysql_sys_var *var,
|
||||
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,
|
||||
&fixed);
|
||||
else
|
||||
*(longlong *)save= getopt_ll_limit_value(tmp, &options, &fixed);
|
||||
|
||||
if (fixed)
|
||||
{
|
||||
char buf[22];
|
||||
|
Reference in New Issue
Block a user