summaryrefslogtreecommitdiff
path: root/mysql-test/suite/sys_vars/t/innodb_table_locks_func.test
blob: 330addd6b3b889a2f8b589fb830a03e32a3c507d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
################# mysql-test\t\innodb_table_locks_func.test  ##################
#                                                                             #
# Variable Name: innodb_table_locks                                           #
# Scope: GLOBAL | SESSION                                                     #
# Access Type: Dynamic                                                        #
# Data Type: boolean                                                          #
# Default Value: 1                                                            #
# Range: 0,1                                                                  #
#                                                                             #
#                                                                             #
# Creation Date: 2008-03-08                                                   #
# Author:  Rizwan                                                             #
#                                                                             #
# Description: Test Cases of Dynamic System Variable innodb_table_locks       #
#              that checks the behavior of this variable                      #
#                                                                             #
# Reference:                                                                  #
#    http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html      #
#                                                                             #
###############################################################################

--source include/not_embedded.inc
--source include/have_innodb.inc

--echo '#--------------------FN_DYNVARS_048_01-------------------------#'
####################################################################
# Check if setting innodb_table_locks is changed in new connection #
####################################################################

SET @start_value= @@global.innodb_table_locks;
SELECT @start_value;

SET @@global.innodb_table_locks = OFF;
--echo 'connect (con1,localhost,root,,,,)'
connect (con1,localhost,root,,,,);
--echo 'connection con1'
connection con1;
SELECT @@global.innodb_table_locks;
SELECT @@session.innodb_table_locks;
disconnect con1;


--echo '#--------------------FN_DYNVARS_048_02-------------------------#'
###########################################################
# Begin the functionality Testing of innodb_table_locks   #
###########################################################

#==============================================================================
--echo '----check when innodb_table_locks = ON and autocommit = OFF---'
#==============================================================================
--echo 'connect (con2,localhost,root,,,,)'
connect (con2,localhost,root,,,,);

--echo 'connection default'
connection default;

--disable_warnings
DROP TABLE IF EXISTS t1;
--enable_warnings
CREATE TABLE t1 (a INT) ENGINE=INNODB;

SET @@autocommit = OFF;
SET @@innodb_table_locks = ON;

BEGIN;
INSERT INTO t1 VALUES(1);
SELECT * FROM t1 FOR UPDATE;

--echo 'CONNECTION con2'
CONNECTION con2;
SET @@innodb_table_locks = ON;
SET @@autocommit = OFF;
send LOCK TABLES t1 WRITE;

--echo 'CONNECTION default'
CONNECTION default;
COMMIT;

--echo 'CONNECTION con2'
CONNECTION con2;
reap;
UNLOCK tables;

DROP TABLE t1;
disconnect con2;

connection default;
SET @@global.innodb_table_locks= @start_value;
SELECT @@global.innodb_table_locks;

##########################################################
# End of functionality Testing for innodb_table_locks    #
##########################################################