diff options
Diffstat (limited to 'mysql-test/t/concurrent_insert_func.test')
-rw-r--r-- | mysql-test/t/concurrent_insert_func.test | 140 |
1 files changed, 140 insertions, 0 deletions
diff --git a/mysql-test/t/concurrent_insert_func.test b/mysql-test/t/concurrent_insert_func.test new file mode 100644 index 00000000000..e6ea7c4304b --- /dev/null +++ b/mysql-test/t/concurrent_insert_func.test @@ -0,0 +1,140 @@ +############## mysql-test\t\concurrent_insert_basic.test ####################### +# # +# Variable Name: concurrent_insert # +# Scope: GLOBAL # +# Access Type: Dynamic # +# Data Type: Boolean & Numeric # +# Default Value: 1 # +# Valid Values: 0,1 & 2 # +# # +# # +# Creation Date: 2008-03-07 # +# Author: Salman Rawala # +# # +# Description: Test Cases of Dynamic System Variable "concurrent_insert" # +# that checks functionality of this variable # +# # +# Reference: http://dev.mysql.com/doc/refman/5.1/en/ # +# server-system-variables.html#option_mysqld_concurrent_insert # +# # +################################################################################ + + +--disable_warnings +drop table if exists t1; +--enable_warnings + +######################### +# Creating new table # +######################### + +--echo ## Creating new table ## +CREATE TABLE t1 +( +name varchar(30) +); + +--echo '#--------------------FN_DYNVARS_018_01-------------------------#' +#################################################################### +# Setting initial value of concurrent_insert to 1 +# concurrent_insert = 1 means Enables concurrent insert +# for MyISAM tables that don't have holes +#################################################################### + +--echo ## Setting initial value of variable to 1 ## +SET @@global.concurrent_insert = 1; +INSERT into t1(name) values('Record_1'); +INSERT into t1(name) values('Record_2'); +INSERT into t1(name) values('Record_3'); + +--echo ## locking table ## +lock table t1 read local; + +--echo ## Creating new connection to insert some rows in table ## +connect (test_con1,localhost,root,,); +connection test_con1; + +--echo ## New records should come at the end of all rows ## +INSERT into t1(name) values('Record_4'); +SELECT * from t1; + + +--echo ## unlocking tables ## +connection default; +unlock tables; + +--echo ## deleting record to create hole in table ## +DELETE from t1 where name ='Record_2'; + + +--echo '#--------------------FN_DYNVARS_018_02-------------------------#' +#################################################################### +# Setting initial value of concurrent_insert to 1 +# concurrent_insert = 1 and trying to insert some values +# in MyISAM tables that have holes +#################################################################### + +# lock table and connect with connection1 +#lock table t1 read local; +#connection test_con1; + +# setting value of concurrent_insert to 1 +#SET @@global.concurrent_insert=1; + +#INSERT into t1(name) values('Record_7'); +#SELECT * from t1; + +#connection default; +#unlock tables; + +#SELECT * from t1; +#INSERT into t1(name) values('Record_6'); + +# On inserting rows in hole while the value of concurrent_insert is 1 +# MySQL server hangs. + + + +--echo '#--------------------FN_DYNVARS_018_03-------------------------#' +############################################################################### +# Setting value of concurrent_insert to 2 to verify values after inserting +# it into table with holes +# concurrent_insert = 2 means Enables concurrent insert +# for MyISAM tables that have holes but inserts values at the end of all rows +############################################################################### + +--echo ## lock table and connect with connection1 ## +lock table t1 read local; +connection test_con1; + +--echo ## setting value of concurrent_insert to 2 ## +SET @@global.concurrent_insert=2; + +--echo ## Inserting record in table, record should go at the end of the table ## +INSERT into t1(name) values('Record_5'); +SELECT * from t1; +SELECT @@concurrent_insert; + +--echo ## Switching to default connection ## +connection default; + +--echo ## Unlocking table ## +unlock tables; + +SELECT * from t1; + +--echo ## Inserting new row, this should go in the hole ## +INSERT into t1(name) values('Record_6'); +SELECT * from t1; + +--echo ## connection test_con1 ## + +DELETE from t1 where name ='Record_3'; +SELECT * from t1; + +--echo ## Dropping table ## +DROP table t1; + +--echo ## Disconnecting connection ## +disconnect test_con1; + |