summaryrefslogtreecommitdiff
path: root/mysql-test/suite/sys_vars/inc
diff options
context:
space:
mode:
authorHorst Hunger <horst@mysql.com>2009-01-26 16:34:41 +0100
committerHorst Hunger <horst@mysql.com>2009-01-26 16:34:41 +0100
commit2255610125751cebef8c0bf898ba1868ee641432 (patch)
tree2ed7d5a0acdbede406108a5c2df531d971a85660 /mysql-test/suite/sys_vars/inc
parentb33437f18a8291f9ff0a779d6aa66ed8a9afffc6 (diff)
downloadmariadb-git-2255610125751cebef8c0bf898ba1868ee641432.tar.gz
Modified fix for bug#36876 due to reviews: See bug report.
Diffstat (limited to 'mysql-test/suite/sys_vars/inc')
-rw-r--r--mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc87
1 files changed, 49 insertions, 38 deletions
diff --git a/mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc b/mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc
index a8fa50a6a23..e55673fd045 100644
--- a/mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc
+++ b/mysql-test/suite/sys_vars/inc/key_buffer_size_basic.inc
@@ -28,59 +28,68 @@
--source include/load_sysvars.inc
-########################################################################
+let $minimum_range= BETWEEN 8 AND 36;
+########################################################################
# START OF key_buffer_size TESTS #
-########################################################################
+########################################################################
--disable_warnings
-########################################################################
+########################################################################
# Saving initial value of key_buffer_size in a temporary variable #
-########################################################################
+########################################################################
SET @start_value = @@global.key_buffer_size;
--echo '#--------------------FN_DYNVARS_055_01------------------------#'
-########################################################################
+########################################################################
# Display the DEFAULT value of key_buffer_size #
-########################################################################
+########################################################################
SET @@global.key_buffer_size = 99;
--Error ER_NO_DEFAULT
SET @@global.key_buffer_size = DEFAULT;
-SELECT @@global.key_buffer_size >= 8 AND @@global.key_buffer_size <= 36;
+eval SELECT @@global.key_buffer_size $minimum_range;
--echo '#---------------------FN_DYNVARS_055_02-------------------------#'
-###############################################
+###############################################
# Verify default value of variable #
-###############################################
+###############################################
SET @@global.key_buffer_size = @start_value;
SELECT @@global.key_buffer_size = @start_value;
--echo '#--------------------FN_DYNVARS_055_03------------------------#'
-########################################################################
+########################################################################
# Change the value of key_buffer_size to a valid value #
-########################################################################
+########################################################################
SET @@global.key_buffer_size = 8 ;
-SELECT @@global.key_buffer_size >= 8 AND @@global.key_buffer_size <= 36;
+eval SELECT @@global.key_buffer_size $minimum_range;
--disable_warnings
-#Due to increasing the runtime significantly and allocating the buffer instantly.
+# The next subtest is set to comment because it will
+# be tried to allocate the buffer instantly which
+# might lead to a message about missing resources,
+# excessive runtime etc. especially if the main memory is less than 4GB.
#SET @@global.key_buffer_size = 4294967295;
--enable_warnings
#SELECT @@global.key_buffer_size;
SET @@global.key_buffer_size = 1800;
-SELECT @@global.key_buffer_size >= 8 AND @@global.key_buffer_size <= 36;
+eval SELECT @@global.key_buffer_size $minimum_range;
SET @@global.key_buffer_size = 65535;
SELECT @@global.key_buffer_size;
--echo '#--------------------FN_DYNVARS_055_04-------------------------#'
-###########################################################################
+###########################################################################
# Change the value of key_buffer_size to invalid value #
-###########################################################################
-
-# Due to increasing the runtime significantly and allocating the buffer instantly
-# with a size of 18446744073709551615 bytes with 32bit exec.
+###########################################################################
+
+# The next subtests are set to comment because they will
+# be tried to allocate the buffer instantly which
+# might lead to a message about missing resources,
+# excessive runtime etc. especially if the main memory is less than 4GB.
+# The negative values lead to very big numbers, e.g. -1 to
+# a size of 18446744073709551615 bytes with a 32bit binary.
+# See Bug #42103.
#SET @@global.key_buffer_size = -1;
#SELECT @@global.key_buffer_size;
#SET @@global.key_buffer_size = 100000000000;
@@ -91,46 +100,49 @@ SELECT @@global.key_buffer_size;
#SET @@global.key_buffer_size = -1024;
#SELECT @@global.key_buffer_size;
SET @@global.key_buffer_size = 4;
-SELECT @@global.key_buffer_size >= 8 AND @@global.key_buffer_size <= 36;
+eval SELECT @@global.key_buffer_size $minimum_range;
--Error ER_WRONG_TYPE_FOR_VAR
SET @@global.key_buffer_size = ON;
-SELECT @@global.key_buffer_size >= 8 AND @@global.key_buffer_size <= 36;
+eval SELECT @@global.key_buffer_size $minimum_range;
--Error ER_WRONG_TYPE_FOR_VAR
SET @@global.key_buffer_size = 'test';
-SELECT @@global.key_buffer_size >= 8 AND @@global.key_buffer_size <= 36;
+eval SELECT @@global.key_buffer_size $minimum_range;
--echo '#-------------------FN_DYNVARS_055_05----------------------------#'
-###########################################################################
+###########################################################################
# Test if accessing session key_buffer_size gives error #
-###########################################################################
+###########################################################################
--Error ER_GLOBAL_VARIABLE
SET @@session.key_buffer_size = 0;
-SELECT @@global.key_buffer_size >= 8 AND @@global.key_buffer_size <= 36;
+eval SELECT @@global.key_buffer_size $minimum_range;
--echo '#----------------------FN_DYNVARS_055_06------------------------#'
-##############################################################################
+##############################################################################
# Check if the value in GLOBAL & SESSION Tables matches values in variable #
##############################################################################
-SELECT @@global.key_buffer_size = VARIABLE_VALUE
-FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
+SELECT @@global.key_buffer_size = VARIABLE_VALUE
+FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME='key_buffer_size';
-SELECT @@key_buffer_size = VARIABLE_VALUE
-FROM INFORMATION_SCHEMA.SESSION_VARIABLES
+SELECT @@key_buffer_size = VARIABLE_VALUE
+FROM INFORMATION_SCHEMA.SESSION_VARIABLES
WHERE VARIABLE_NAME='key_buffer_size';
--echo '#---------------------FN_DYNVARS_055_07----------------------#'
-###################################################################
+###################################################################
# Check if TRUE and FALSE values can be used on variable #
-###################################################################
+###################################################################
+# The following assignment are accepted, but should be rejected
+# like the value ON (see above).
+# See Bug #42104
SET @@global.key_buffer_size = TRUE;
-SELECT @@global.key_buffer_size >= 8 AND @@global.key_buffer_size <= 36;
+eval SELECT @@global.key_buffer_size $minimum_range;
SET @@global.key_buffer_size = FALSE;
-SELECT @@global.key_buffer_size >= 8 AND @@global.key_buffer_size <= 36;
+eval SELECT @@global.key_buffer_size $minimum_range;
--echo '#---------------------FN_DYNVARS_055_08----------------------#'
#####################################################################
@@ -145,13 +157,13 @@ SELECT @@key_buffer_size = @@global.key_buffer_size;
--enable_warnings
--echo '#---------------------FN_DYNVARS_055_09----------------------#'
-##########################################################################
+##########################################################################
# Check if key_buffer_size can be accessed with and without @@ sign #
##########################################################################
--Error ER_GLOBAL_VARIABLE
SET key_buffer_size = 8 ;
-SELECT @@global.key_buffer_size >= 8 AND @@global.key_buffer_size <= 36;
+eval SELECT @@global.key_buffer_size $minimum_range;
--Error ER_PARSE_ERROR
SET local.key_buffer_size = 10;
--Error ER_UNKNOWN_TABLE
@@ -163,8 +175,7 @@ SELECT global.key_buffer_size;
--Error ER_BAD_FIELD_ERROR
SELECT key_buffer_size = @@session.key_buffer_size;
-
-##############################
+##############################
# Restore initial value #
##############################