polardbxengine/mysql-test/suite/xengine_sysvars/inc/xengine_sys_var.inc

120 lines
3.5 KiB
PHP

##
# $sys_var name of the variable
# $read_only - true if read-only
# $session - true if this is session, false if global-only
# valid_values table should contain valid values
# invalid_values
##
--eval SET @start_global_value = @@global.$sys_var
SELECT @start_global_value;
if ($session)
{
--eval SET @start_session_value = @@session.$sys_var
SELECT @start_session_value;
}
if (!$read_only)
{
--echo '# Setting to valid values in global scope#'
--let $i=1
--let $value=query_get_value(select value from valid_values, value, $i)
while ($value != 'No such row')
{
--echo "Trying to set variable @@global.$sys_var to $value"
--eval SET @@global.$sys_var = $value
--eval SELECT @@global.$sys_var
--let $v=`SELECT @@global.$sys_var`
--source ./correctboolvalue.inc
if (!$sticky)
{
if ($v != $int_value)
{
--echo Set @@global.$sys_var to $value but it remained set to $v
--die Wrong variable value
}
}
--echo "Setting the global scope variable back to default"
--eval SET @@global.$sys_var = DEFAULT
--eval SELECT @@global.$sys_var
--inc $i
--let $value=query_get_value(select value from valid_values, value, $i)
}
if ($session)
{
--echo '# Setting to valid values in session scope#'
--let $i=1
--let $value=query_get_value(select value from valid_values, value, $i)
while ($value != 'No such row')
{
--echo "Trying to set variable @@session.$sys_var to $value"
--eval SET @@session.$sys_var = $value
--eval SELECT @@session.$sys_var
--let $v=`SELECT @@session.$sys_var`
--source ./correctboolvalue.inc
if (!$sticky)
{
if ($v != $int_value)
{
--echo Set @@session.$sys_var to $value but it remained set to $v
--die Wrong variable value
}
}
--echo "Setting the session scope variable back to default"
--eval SET @@session.$sys_var = DEFAULT
--eval SELECT @@session.$sys_var
--inc $i
--let $value=query_get_value(select value from valid_values, value, $i)
}
}
if (!$session)
{
--echo "Trying to set variable @@session.$sys_var to 444. It should fail because it is not session."
--Error ER_GLOBAL_VARIABLE
--eval SET @@session.$sys_var = 444
}
--echo '# Testing with invalid values in global scope #'
####################################################################
# Change the value of query_prealloc_size to an invalid value #
####################################################################
--let $i=1
--let $value=query_get_value(select value from invalid_values, value, $i)
while ($value != 'No such row')
{
--echo "Trying to set variable @@global.$sys_var to $value"
--Error ER_WRONG_VALUE_FOR_VAR, ER_WRONG_TYPE_FOR_VAR
--eval SET @@global.$sys_var = $value
--eval SELECT @@global.$sys_var
--inc $i
--let $value=query_get_value(select value from invalid_values, value, $i)
}
}
if ($read_only)
{
--echo "Trying to set variable @@global.$sys_var to 444. It should fail because it is readonly."
--Error ER_INCORRECT_GLOBAL_LOCAL_VAR
--eval SET @@global.$sys_var = 444
}
####################################
# Restore initial value #
####################################
if (!$read_only)
{
--eval SET @@global.$sys_var = @start_global_value
--eval SELECT @@global.$sys_var
if ($session)
{
--eval SET @@session.$sys_var = @start_session_value
--eval SELECT @@session.$sys_var
}
}