Commit 92f79a22 authored by Marko Mäkelä's avatar Marko Mäkelä

Merge 10.5 into 10.6

parents 120480d1 a112a80b
...@@ -233,6 +233,7 @@ typedef int (*mysql_show_var_func)(MYSQL_THD, struct st_mysql_show_var*, void *, ...@@ -233,6 +233,7 @@ typedef int (*mysql_show_var_func)(MYSQL_THD, struct st_mysql_show_var*, void *,
#define PLUGIN_VAR_NOCMDARG 0x1000 /* No argument for cmd line */ #define PLUGIN_VAR_NOCMDARG 0x1000 /* No argument for cmd line */
#define PLUGIN_VAR_RQCMDARG 0x0000 /* Argument required for cmd line */ #define PLUGIN_VAR_RQCMDARG 0x0000 /* Argument required for cmd line */
#define PLUGIN_VAR_OPCMDARG 0x2000 /* Argument optional for cmd line */ #define PLUGIN_VAR_OPCMDARG 0x2000 /* Argument optional for cmd line */
#define PLUGIN_VAR_DEPRECATED 0x4000 /* Server variable is deprecated */
#define PLUGIN_VAR_MEMALLOC 0x8000 /* String needs memory allocated */ #define PLUGIN_VAR_MEMALLOC 0x8000 /* String needs memory allocated */
struct st_mysql_sys_var; struct st_mysql_sys_var;
...@@ -286,7 +287,8 @@ typedef void (*mysql_var_update_func)(MYSQL_THD thd, ...@@ -286,7 +287,8 @@ typedef void (*mysql_var_update_func)(MYSQL_THD thd,
#define PLUGIN_VAR_MASK \ #define PLUGIN_VAR_MASK \
(PLUGIN_VAR_READONLY | PLUGIN_VAR_NOSYSVAR | \ (PLUGIN_VAR_READONLY | PLUGIN_VAR_NOSYSVAR | \
PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_NOCMDARG | \ PLUGIN_VAR_NOCMDOPT | PLUGIN_VAR_NOCMDARG | \
PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_MEMALLOC) PLUGIN_VAR_OPCMDARG | PLUGIN_VAR_RQCMDARG | \
PLUGIN_VAR_DEPRECATED | PLUGIN_VAR_MEMALLOC)
#define MYSQL_PLUGIN_VAR_HEADER \ #define MYSQL_PLUGIN_VAR_HEADER \
int flags; \ int flags; \
......
...@@ -40,11 +40,15 @@ a ...@@ -40,11 +40,15 @@ a
set global example_ulong_var=500; set global example_ulong_var=500;
set global example_enum_var= e1; set global example_enum_var= e1;
set session example_int_var= -1; set session example_int_var= -1;
set global example_deprecated_var=1;
Warnings:
Warning 1287 '@@example_deprecated_var' is deprecated and will be removed in a future release
show status like 'example%'; show status like 'example%';
Variable_name Value Variable_name Value
Example_func_example enum_var is 0, ulong_var is 500, int_var is -1, double_var is 8.500000, really Example_func_example enum_var is 0, ulong_var is 500, int_var is -1, double_var is 8.500000, really
show variables like 'example%'; show variables like 'example%';
Variable_name Value Variable_name Value
example_deprecated_var 0
example_double_thdvar 8.500000 example_double_thdvar 8.500000
example_double_var 8.500000 example_double_var 8.500000
example_enum_var e1 example_enum_var e1
......
...@@ -27,6 +27,7 @@ SELECT * FROM t1; ...@@ -27,6 +27,7 @@ SELECT * FROM t1;
set global example_ulong_var=500; set global example_ulong_var=500;
set global example_enum_var= e1; set global example_enum_var= e1;
set session example_int_var= -1; set session example_int_var= -1;
set global example_deprecated_var=1;
show status like 'example%'; show status like 'example%';
show variables like 'example%'; show variables like 'example%';
......
/* Copyright (c) 2000, 2015, Oracle and/or its affiliates. /* Copyright (c) 2000, 2015, Oracle and/or its affiliates.
Copyright (c) 2009, 2021, MariaDB Copyright (c) 2009, 2022, MariaDB
This program is free software; you can redistribute it and/or modify This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by it under the terms of the GNU General Public License as published by
...@@ -1156,14 +1156,10 @@ longlong Item_func_plus::int_op() ...@@ -1156,14 +1156,10 @@ longlong Item_func_plus::int_op()
} }
} }
#ifndef WITH_UBSAN
res= val0 + val1;
#else
if (res_unsigned) if (res_unsigned)
res= (longlong) ((ulonglong) val0 + (ulonglong) val1); res= (longlong) ((ulonglong) val0 + (ulonglong) val1);
else else
res= val0+val1; res= val0 + val1;
#endif /* WITH_UBSAN */
return check_integer_overflow(res, res_unsigned); return check_integer_overflow(res, res_unsigned);
...@@ -1326,14 +1322,10 @@ longlong Item_func_minus::int_op() ...@@ -1326,14 +1322,10 @@ longlong Item_func_minus::int_op()
goto err; goto err;
} }
} }
#ifndef WITH_UBSAN
res= val0 - val1;
#else
if (res_unsigned) if (res_unsigned)
res= (longlong) ((ulonglong) val0 - (ulonglong) val1); res= (longlong) ((ulonglong) val0 - (ulonglong) val1);
else else
res= val0 - val1; res= val0 - val1;
#endif /* WITH_UBSAN */
return check_integer_overflow(res, res_unsigned); return check_integer_overflow(res, res_unsigned);
......
...@@ -311,7 +311,8 @@ class sys_var_pluginvar: public sys_var, public Sql_alloc ...@@ -311,7 +311,8 @@ class sys_var_pluginvar: public sys_var, public Sql_alloc
struct st_mysql_sys_var *plugin_var; struct st_mysql_sys_var *plugin_var;
sys_var_pluginvar(sys_var_chain *chain, const char *name_arg, sys_var_pluginvar(sys_var_chain *chain, const char *name_arg,
st_plugin_int *p, st_mysql_sys_var *plugin_var_arg); st_plugin_int *p, st_mysql_sys_var *plugin_var_arg,
const char *substitute);
sys_var_pluginvar *cast_pluginvar() { return this; } sys_var_pluginvar *cast_pluginvar() { return this; }
uchar* real_value_ptr(THD *thd, enum_var_type type) const; uchar* real_value_ptr(THD *thd, enum_var_type type) const;
TYPELIB* plugin_var_typelib(void) const; TYPELIB* plugin_var_typelib(void) const;
...@@ -3417,11 +3418,11 @@ static int pluginvar_sysvar_flags(const st_mysql_sys_var *p) ...@@ -3417,11 +3418,11 @@ static int pluginvar_sysvar_flags(const st_mysql_sys_var *p)
} }
sys_var_pluginvar::sys_var_pluginvar(sys_var_chain *chain, const char *name_arg, sys_var_pluginvar::sys_var_pluginvar(sys_var_chain *chain, const char *name_arg,
st_plugin_int *p, st_mysql_sys_var *pv) st_plugin_int *p, st_mysql_sys_var *pv, const char *substitute)
: sys_var(chain, name_arg, pv->comment, pluginvar_sysvar_flags(pv), : sys_var(chain, name_arg, pv->comment, pluginvar_sysvar_flags(pv),
0, pv->flags & PLUGIN_VAR_NOCMDOPT ? -1 : 0, NO_ARG, 0, pv->flags & PLUGIN_VAR_NOCMDOPT ? -1 : 0, NO_ARG,
pluginvar_show_type(pv), 0, pluginvar_show_type(pv), 0,
NULL, VARIABLE_NOT_IN_BINLOG, NULL, NULL, NULL), NULL, VARIABLE_NOT_IN_BINLOG, NULL, NULL, substitute),
plugin(p), plugin_var(pv) plugin(p), plugin_var(pv)
{ {
plugin_var->name= name_arg; plugin_var->name= name_arg;
...@@ -4163,7 +4164,8 @@ static int test_plugin_options(MEM_ROOT *tmp_root, struct st_plugin_int *tmp, ...@@ -4163,7 +4164,8 @@ static int test_plugin_options(MEM_ROOT *tmp_root, struct st_plugin_int *tmp,
my_casedn_str(&my_charset_latin1, varname); my_casedn_str(&my_charset_latin1, varname);
convert_dash_to_underscore(varname, len-1); convert_dash_to_underscore(varname, len-1);
} }
v= new (mem_root) sys_var_pluginvar(&chain, varname, tmp, o); const char *s= o->flags & PLUGIN_VAR_DEPRECATED ? "" : NULL;
v= new (mem_root) sys_var_pluginvar(&chain, varname, tmp, o, s);
v->test_load= (var ? &var->loaded : &static_unload); v->test_load= (var ? &var->loaded : &static_unload);
DBUG_ASSERT(static_unload == FALSE); DBUG_ASSERT(static_unload == FALSE);
......
...@@ -1060,12 +1060,17 @@ static MYSQL_THDVAR_DOUBLE( ...@@ -1060,12 +1060,17 @@ static MYSQL_THDVAR_DOUBLE(
1000.5, 1000.5,
0); 0);
static MYSQL_THDVAR_INT(
deprecated_var, PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_DEPRECATED, "-1..1",
NULL, NULL, 0, -1, 1, 0);
static struct st_mysql_sys_var* example_system_variables[]= { static struct st_mysql_sys_var* example_system_variables[]= {
MYSQL_SYSVAR(enum_var), MYSQL_SYSVAR(enum_var),
MYSQL_SYSVAR(ulong_var), MYSQL_SYSVAR(ulong_var),
MYSQL_SYSVAR(int_var), MYSQL_SYSVAR(int_var),
MYSQL_SYSVAR(double_var), MYSQL_SYSVAR(double_var),
MYSQL_SYSVAR(double_thdvar), MYSQL_SYSVAR(double_thdvar),
MYSQL_SYSVAR(deprecated_var),
MYSQL_SYSVAR(varopt_default), MYSQL_SYSVAR(varopt_default),
NULL NULL
}; };
......
...@@ -4019,7 +4019,7 @@ static bool is_drive_on_ssd(DWORD nr) ...@@ -4019,7 +4019,7 @@ static bool is_drive_on_ssd(DWORD nr)
sizeof storage_query, &seek_penalty, sizeof seek_penalty, sizeof storage_query, &seek_penalty, sizeof seek_penalty,
&bytes_written, nullptr)) &bytes_written, nullptr))
{ {
on_ssd= seek_penalty.IncursSeekPenalty; on_ssd= !seek_penalty.IncursSeekPenalty;
} }
else else
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment