~mdcallag/+junk/5.1-map

« back to all changes in this revision

Viewing changes to mysql-test/suite/row_lock/r/innodb_row_lock_big_tab.result

  • Committer: msvensson at pilot
  • Date: 2007-04-24 09:11:45 UTC
  • mfrom: (2469.1.106)
  • Revision ID: sp1r-msvensson@pilot.blaudden-20070424091145-10463
Merge pilot.blaudden:/home/msvensson/mysql/my51-m-mysql_upgrade
into  pilot.blaudden:/home/msvensson/mysql/mysql-5.1-maint

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
SELECT @@global.innodb_table_locks into @table_locks;
 
2
SET @@global.innodb_table_locks= OFF;
 
3
DROP TABLE IF EXISTS t1, t2;
 
4
DROP VIEW IF EXISTS v1;
 
5
SET autocommit=0;
 
6
SET autocommit=0;
 
7
connection default;
 
8
CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
 
9
CREATE INDEX ixi ON t1 (i);
 
10
CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=InnoDB;
 
11
CREATE INDEX ixi ON t2 (i);
 
12
CREATE PROCEDURE fill_t1 (IN upb int)
 
13
BEGIN
 
14
DECLARE cnt int DEFAULT 0;
 
15
WHILE cnt < upb DO
 
16
INSERT INTO t1 VALUES (cnt, cnt+100, cnt, cnt+100);
 
17
SET cnt= cnt+1;
 
18
END WHILE; 
 
19
END;
 
20
|
 
21
CREATE FUNCTION half_t1() RETURNS int
 
22
BEGIN
 
23
DECLARE res int DEFAULT 0;
 
24
SELECT count(*)/2 INTO res FROM t1;
 
25
RETURN  res;
 
26
END;
 
27
|
 
28
CREATE PROCEDURE fill_t2 (IN upb int)
 
29
BEGIN
 
30
DECLARE cnt int DEFAULT 0;
 
31
WHILE cnt < upb DO
 
32
INSERT INTO t2 VALUES (cnt, cnt+100, cnt, cnt+100);
 
33
SET cnt= cnt+1;
 
34
END WHILE; 
 
35
END;
 
36
|
 
37
CREATE FUNCTION half_t2() RETURNS int
 
38
BEGIN
 
39
DECLARE res int DEFAULT 0;
 
40
SELECT count(*)/2 INTO res FROM t2;
 
41
RETURN  res;
 
42
END;
 
43
|
 
44
CALL fill_t1 (10);
 
45
CALL fill_t2 (10);
 
46
COMMIT;
 
47
SELECT @@global.tx_isolation;
 
48
@@global.tx_isolation
 
49
REPEATABLE-READ
 
50
EXPLAIN SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < half_t1() AND t2.i=t1.i LOCK IN SHARE MODE;
 
51
id      select_type     table   type    possible_keys   key     key_len ref     rows    Extra
 
52
1       SIMPLE  t1      index   ixi     ixi     5       NULL    10      Using where; Using index
 
53
1       SIMPLE  t2      ref     ixi     ixi     5       test.t1.i       1       Using where; Using index
 
54
SELECT t1.i,t2.i FROM t1,t2 WHERE t1.i < half_t1() AND t2.i=t1.i LOCK IN SHARE MODE;
 
55
i       i
 
56
connection root1;
 
57
SELECT k from t1 WHERE k < half_t1();
 
58
k
 
59
0
 
60
1
 
61
2
 
62
3
 
63
4
 
64
SELECT k from t1 WHERE k >= half_t1();
 
65
k
 
66
5
 
67
6
 
68
7
 
69
8
 
70
9
 
71
UPDATE t1,t2 SET t1.i=1111,t2.i=2222 WHERE t1.k < half_t1() AND t2.i=t1.i;
 
72
SELECT * FROM t1 ORDER BY t1.k;
 
73
k       i       j       l
 
74
0       1111    0       100
 
75
1       1111    1       101
 
76
2       1111    2       102
 
77
3       1111    3       103
 
78
4       1111    4       104
 
79
5       105     5       105
 
80
6       106     6       106
 
81
7       107     7       107
 
82
8       108     8       108
 
83
9       109     9       109
 
84
SELECT * FROM t2 ORDER BY t2.k;
 
85
k       i       j       l
 
86
0       2222    0       100
 
87
1       2222    1       101
 
88
2       2222    2       102
 
89
3       2222    3       103
 
90
4       2222    4       104
 
91
5       105     5       105
 
92
6       106     6       106
 
93
7       107     7       107
 
94
8       108     8       108
 
95
9       109     9       109
 
96
connection default;
 
97
UPDATE t1,t2 SET t1.i=3333,t2.i=4444 WHERE t1.k >= half_t1() AND t2.i=t1.i;