1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-01 03:47:19 +03:00

MDEV-22441 implement a generic way to change a value of a variable in a scope

Example:
{
  auto _= make_scope_value(var, tmp_value);
}

make_scope_value(): a function which returns RAII object which temporary
changes a value of a variable

detail::Scope_value: actual implementation of such RAII class.
It shouldn't be used directly! That's why it's inside a namespace detail.
This commit is contained in:
Eugene Kosov
2025-01-13 15:40:58 +03:00
committed by Aleksey Midenkov
parent b337e14440
commit 52dd489515
3 changed files with 51 additions and 4 deletions

View File

@ -65,6 +65,7 @@
#include "transaction.h"
#include "opt_trace.h"
#include "my_cpu.h"
#include "scope.h"
#include "lex_symbol.h"
@ -6437,8 +6438,7 @@ bool store_schema_params(THD *thd, TABLE *table, TABLE *proc_table,
{
Field *field;
LEX_CSTRING tmp_string;
Sql_mode_save sql_mode_backup(thd);
thd->variables.sql_mode= sql_mode;
auto _= make_scope_value(thd->variables.sql_mode, sql_mode);
if (sph->type() == SP_TYPE_FUNCTION)
{