mariadb/mysql-test/suite/sys_vars/t/optimizer_switch_basic.test
Rucha Deodhar 0994af43e5 MDEV-22058: Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' failed in Diagnostics_area::set_ok_status
Error state is not stored in check_and_do_in_subquery_rewrites() when there is
illegal combination of optimizer switches. So all the functions eventually
return false. Thus the assetion failure.
2020-07-12 20:03:32 +05:30

52 lines
1.7 KiB
Text

--source include/default_optimizer_switch.inc
#
# 2010-01-20 OBN Added check for I_S values after variable value changed
#
set @@global.optimizer_switch=@@optimizer_switch;
#
# exists as global and session
#
select @@global.optimizer_switch;
select @@session.optimizer_switch;
show global variables like 'optimizer_switch';
show session variables like 'optimizer_switch';
select * from information_schema.global_variables where variable_name='optimizer_switch';
select * from information_schema.session_variables where variable_name='optimizer_switch';
#
# show that it's writable
#
set global optimizer_switch=4101;
set session optimizer_switch=2058;
select @@global.optimizer_switch;
select @@session.optimizer_switch;
set global optimizer_switch="index_merge_sort_union=on";
set session optimizer_switch="index_merge=off";
select @@global.optimizer_switch;
select @@session.optimizer_switch;
show global variables like 'optimizer_switch';
show session variables like 'optimizer_switch';
select * from information_schema.global_variables where variable_name='optimizer_switch';
select * from information_schema.session_variables where variable_name='optimizer_switch';
set session optimizer_switch="default";
select @@session.optimizer_switch;
set optimizer_switch = replace(@@optimizer_switch, '=off', '=on');
select @@optimizer_switch;
#
# incorrect assignments
#
--error ER_WRONG_TYPE_FOR_VAR
set global optimizer_switch=1.1;
--error ER_WRONG_TYPE_FOR_VAR
set global optimizer_switch=1e1;
--error ER_WRONG_VALUE_FOR_VAR
set session optimizer_switch="index_merge";
--error ER_WRONG_VALUE_FOR_VAR
set session optimizer_switch="foobar";
SET @@global.optimizer_switch = @save_optimizer_switch;