mariadb/mysql-test/suite/sys_vars/t/new_mode.test
Rex Johnston 155ed2c579 MDEV-37784 Introduce @@new_mode variable
@@new_mode is a set of flags to control introduced features.
Flags are by default off.  Setting a flag in @@new_mode will introduce
a new different server behaviour and/or set of features.

We also introduce a new option 'hidden_values' into some system variable
types to hide options that we do not wish to show as options.

- Don't print hidden values in mysqld --help output.
- Make get_options() use the same logic as check_new_mode_value() does.
- Setting @@new_mode=ALL shouldn't give warnings.

(cherry picked from commit f7387cb13d)
2025-10-25 00:19:11 +07:00

53 lines
1.3 KiB
Text

--source include/load_sysvars.inc
--source include/have_debug.inc
SET @global_start_value = @@global.new_mode;
SELECT @global_start_value;
SET @session_start_value = @@session.new_mode;
SELECT @session_start_value;
SET @@global.new_mode = "FIX_DISK_TMPTABLE_COSTS";
SELECT @@global.new_mode;
SELECT @@session.new_mode;
SET @@global.new_mode = DEFAULT;
SELECT @@global.new_mode;
SELECT @@session.new_mode;
SET @@session.new_mode = "FIX_DISK_TMPTABLE_COSTS,TEST_WARNING1";
SET @@session.new_mode = "FIX_DISK_TMPTABLE_COSTS,TEST_WARNING1,TEST_WARNING2";
--Error ER_WRONG_VALUE_FOR_VAR
SET @@session.new_mode = "FIX_DISK_TMPTABLE_COSTS,TEST_WARNING1,TEST_WARNING2,TEST_WARNING3";
SET @@session.new_mode = "ALL";
select @@session.new_mode;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.new_mode = NULL;
SET @@global.new_mode = '';
SELECT @@global.new_mode;
SET @@global.new_mode = ' ';
SELECT @@global.new_mode;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@session.new_mode = NULL;
SET @@session.new_mode = '';
SELECT @@session.new_mode;
SET @@session.new_mode = ' ';
SELECT @@session.new_mode;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@global.new_mode = OFF;
--Error ER_WRONG_VALUE_FOR_VAR
SET @@session.new_mode = OFF;
SET @@global.new_mode = @global_start_value;
SELECT @@global.new_mode;
SET @@session.new_mode = @session_start_value;
SELECT @@session.new_mode;