SET @start_global_value = @@global.expensive_subquery_limit;
SELECT @start_global_value;

#
# exists as global and session
#
select @@global.expensive_subquery_limit;
select @@session.expensive_subquery_limit;
show global variables like 'expensive_subquery_limit';
show session variables like 'expensive_subquery_limit';
select * from information_schema.global_variables where variable_name='expensive_subquery_limit';
select * from information_schema.session_variables where variable_name='expensive_subquery_limit';

#
# show that it's writable
#
set global expensive_subquery_limit=10;
set session expensive_subquery_limit=20;
select @@global.expensive_subquery_limit;
select @@session.expensive_subquery_limit;
show global variables like 'expensive_subquery_limit';
show session variables like 'expensive_subquery_limit';
select * from information_schema.global_variables where variable_name='expensive_subquery_limit';
select * from information_schema.session_variables where variable_name='expensive_subquery_limit';

#
# incorrect types
#
--error ER_WRONG_TYPE_FOR_VAR
set global expensive_subquery_limit=1.1;
--error ER_WRONG_TYPE_FOR_VAR
set global expensive_subquery_limit=1e1;
--error ER_WRONG_TYPE_FOR_VAR
set global expensive_subquery_limit="foo";

SET @@global.expensive_subquery_limit = @start_global_value;
SELECT @@global.expensive_subquery_limit;

