2
# Test that user data is correctly "visualized" in
3
# INFORMATION_SCHEMA.innodb_locks.lock_data
8
SET storage_engine=InnoDB;
10
DROP TABLE IF EXISTS t_min, t_max;
17
c04 SMALLINT UNSIGNED,
19
c06 MEDIUMINT UNSIGNED,
24
PRIMARY KEY(c01, c02, c03, c04, c05, c06, c07, c08, c09, c10)
27
INSERT INTO t_min VALUES
32
-9223372036854775808, 0);
34
INSERT INTO t_max VALUES
38
2147483647, 4294967295,
39
9223372036854775807, 18446744073709551615);
41
CREATE TABLE ```t'\"_str` (
49
PRIMARY KEY(c1, c2, c3, c4, c5, c6, c7)
51
INSERT INTO ```t'\"_str` VALUES
52
('1', 'abc', '''abc', 'abc''', 'a''bc', 'a''bc''', '''abc''''');
53
INSERT INTO ```t'\"_str` VALUES
54
('2', 'abc', '"abc', 'abc"', 'a"bc', 'a"bc"', '"abc""');
55
INSERT INTO ```t'\"_str` VALUES
56
('3', 'abc', '\\abc', 'abc\\', 'a\\bc', 'a\\bc\\', '\\abc\\\\');
57
INSERT INTO ```t'\"_str` VALUES
58
('4', 'abc', 0x00616263, 0x61626300, 0x61006263, 0x6100626300, 0x610062630000);
62
SELECT * FROM t_min FOR UPDATE;
63
SELECT * FROM t_max FOR UPDATE;
64
SELECT * FROM ```t'\"_str` FOR UPDATE;
66
SELECT * FROM t_min FOR UPDATE;
68
SELECT * FROM t_max FOR UPDATE;
70
INSERT INTO ```t'\"_str` VALUES
71
('z', 'z', 'z', 'z', 'z', 'z', 'z');
73
SELECT * FROM ```t'\"_str` WHERE c1 = '1' FOR UPDATE;
75
SELECT * FROM ```t'\"_str` WHERE c1 = '2' FOR UPDATE;
77
SELECT * FROM ```t'\"_str` WHERE c1 = '3' FOR UPDATE;
79
SELECT * FROM ```t'\"_str` WHERE c1 = '4' FOR UPDATE;
81
# Give time to the above 2 queries to execute before continuing.
82
# Without this sleep it sometimes happens that the SELECT from innodb_locks
83
# executes before some of them, resulting in less than expected number
84
# of rows being selected from innodb_locks.
86
SELECT lock_mode, lock_type, lock_table, lock_index, lock_rec, lock_data
87
FROM INFORMATION_SCHEMA.INNODB_LOCKS ORDER BY lock_data;
89
SELECT lock_table,COUNT(*) FROM INFORMATION_SCHEMA.INNODB_LOCKS
92
set @save_sql_mode = @@sql_mode;
93
SET SQL_MODE='ANSI_QUOTES';
94
SELECT lock_table,COUNT(*) FROM INFORMATION_SCHEMA.INNODB_LOCKS
96
SET @@sql_mode=@save_sql_mode;
100
DROP TABLE t_min, t_max, ```t'\"_str`;