summaryrefslogtreecommitdiff
path: root/mysql-test/suite/sys_vars/t/myisam_data_pointer_size_func.test
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/sys_vars/t/myisam_data_pointer_size_func.test')
-rw-r--r--mysql-test/suite/sys_vars/t/myisam_data_pointer_size_func.test109
1 files changed, 109 insertions, 0 deletions
diff --git a/mysql-test/suite/sys_vars/t/myisam_data_pointer_size_func.test b/mysql-test/suite/sys_vars/t/myisam_data_pointer_size_func.test
new file mode 100644
index 00000000000..37dd3a5a297
--- /dev/null
+++ b/mysql-test/suite/sys_vars/t/myisam_data_pointer_size_func.test
@@ -0,0 +1,109 @@
+############## mysql-test\t\myisam_data_pointer_size_func.test ################
+# #
+# Variable Name: myisam_data_pointer_size #
+# Scope: GLOBAL & SESSION #
+# Access Type: Dynamic #
+# Data Type: Numeric #
+# Default Value: 1 #
+# Range: 1 - 65536 #
+# #
+# #
+# Creation Date: 2008-03-08 #
+# Author: Rizwan Maredia #
+# #
+# Description: Test Cases of Dynamic System Variable myisam_data_pointer_size #
+# that checks the behavior of this variable #
+# #
+# Reference: #
+# http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html #
+# #
+################################################################################
+
+--echo '#--------------------FN_DYNVARS_093_01-------------------------#'
+###############################################################################
+# Check if setting myisam_data_pointer_size is changed in every new connection#
+###############################################################################
+
+SET @start_value= @@global.myisam_data_pointer_size;
+SET @@global.myisam_data_pointer_size = 2;
+# con1 will be default connection from now on
+--echo 'connect (con1,localhost,root,,,,)'
+connect (con1,localhost,root,,,,);
+--echo 'connection con1'
+connection con1;
+SELECT @@global.myisam_data_pointer_size;
+SET @@global.myisam_data_pointer_size = 3;
+--echo 'connect (con2,localhost,root,,,,)'
+connect (con2,localhost,root,,,,);
+--echo 'connection con2'
+connection con2;
+SELECT @@global.myisam_data_pointer_size;
+disconnect con2;
+
+
+--echo '#--------------------FN_DYNVARS_093_02-------------------------#'
+#################################################################
+# Begin the functionality Testing of myisam_data_pointer_size #
+#################################################################
+
+--echo 'connection con1'
+connection con1;
+
+#===========================================================
+# Checking myisam_data_pointer_size is 2
+#===========================================================
+
+# create sp to add 'count' records
+--disable_warnings
+DROP PROCEDURE IF EXISTS sp_addRec;
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+DELIMITER //;
+CREATE PROCEDURE sp_addRec(IN count INT)
+BEGIN
+ WHILE (count>0) DO
+ INSERT INTO t1 value(1);
+ SET count = count -1;
+ END WHILE;
+END //
+DELIMITER ;//
+
+# setting 2 will allow data pointer to access files with size < 65536
+SET @@global.myisam_data_pointer_size = 2;
+
+CREATE TABLE t1(a INT);
+
+CALL sp_addRec(65535);
+
+--Error ER_RECORD_FILE_FULL
+CALL sp_addRec(1);
+
+SELECT count(*) from t1;
+
+#=======================================================================
+--echo '--Checking myisam_data_pointer_size with MAX_ROWS table option--'
+#=======================================================================
+
+# specifying MAX_ROWS table option renders pointer size useless
+SET @@global.myisam_data_pointer_size = 2;
+
+--disable_warnings
+DROP TABLE IF EXISTS t1;
+--enable_warnings
+
+CREATE TABLE t1(a INT)MAX_ROWS=70000;
+
+CALL sp_addRec(65536);
+
+SELECT count(*) from t1;
+
+DROP PROCEDURE sp_addRec;
+DROP TABLE t1;
+
+connection default;
+SET @@global.myisam_data_pointer_size= @start_value;
+################################################################
+# End of functionality Testing for myisam_data_pointer_size #
+################################################################
+