~mdcallag/+junk/5.1-map

« back to all changes in this revision

Viewing changes to mysql-test/suite/row_lock/include/row_lock_big_tab_1.inc

  • 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
--disable_warnings
 
2
DROP TABLE IF EXISTS t1, t2;
 
3
DROP VIEW IF EXISTS v1;
 
4
--enable_warnings
 
5
SET autocommit=0;
 
6
# Create additional connections used through test
 
7
CONNECT (root1, localhost, root,,);
 
8
SET autocommit=0;
 
9
--echo connection default;
 
10
CONNECTION default;
 
11
eval CREATE TABLE t1 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
 
12
eval $indext1;
 
13
eval CREATE TABLE t2 (k INT NOT NULL PRIMARY KEY, i INT, j INT, l INT) ENGINE=$engine;
 
14
eval $indext2;
 
15
DELIMITER |;
 
16
CREATE PROCEDURE fill_t1 (IN upb int)
 
17
BEGIN
 
18
DECLARE cnt int DEFAULT 0;
 
19
WHILE cnt < upb DO
 
20
      INSERT INTO t1 VALUES (cnt, cnt+100, cnt, cnt+100);
 
21
      SET cnt= cnt+1;
 
22
END WHILE; 
 
23
END;
 
24
|
 
25
CREATE FUNCTION half_t1() RETURNS int
 
26
BEGIN
 
27
    DECLARE res int DEFAULT 0;
 
28
    SELECT MOD(k,2) INTO res FROM t1;
 
29
    RETURN  res;
 
30
END;
 
31
|
 
32
CREATE PROCEDURE fill_t2 (IN upb int)
 
33
BEGIN
 
34
DECLARE cnt int DEFAULT 0;
 
35
WHILE cnt < upb DO
 
36
      INSERT INTO t2 VALUES (cnt, cnt+100, cnt, cnt+100);
 
37
      SET cnt= cnt+1;
 
38
END WHILE; 
 
39
END;
 
40
|
 
41
CREATE FUNCTION half_t2() RETURNS int
 
42
BEGIN
 
43
    DECLARE res int DEFAULT 0;
 
44
    SELECT MOD(k,2) INTO res FROM t2;
 
45
    RETURN  res;
 
46
END;
 
47
|
 
48
DELIMITER ;|
 
49
eval CALL fill_t1 ($nbrows);
 
50
eval CALL fill_t2 ($nbrows);
 
51
COMMIT;
 
52
SELECT @@global.tx_isolation;
 
53
# With the two separate selects (without join) the differs from
 
54
# that select with join.
 
55
 
 
56
# Both transaction are able to update the tables
 
57
eval EXPLAIN $select;
 
58
eval $select;
 
59
 
 
60
--echo connection root1;
 
61
CONNECTION root1;
 
62
SELECT t1.i,t2.i FROM t1,t2 WHERE t1.k % 2= 1 AND t1.k = t2.k LOCK IN SHARE MODE;
 
63
UPDATE t1,t2 SET t1.i=1111,t2.i=2222 WHERE t1.k % 2 = 1 AND t1.k = t2.k;
 
64
SELECT * FROM t1 WHERE k < 20 ORDER BY t1.k;
 
65
SELECT * FROM t2 WHERE k < 20 ORDER BY t2.k;
 
66
 
 
67
--echo connection default;
 
68
CONNECTION default;
 
69
UPDATE t1,t2 SET t1.i=3333,t2.i=4444 WHERE t1.k % 2 = 0 AND t1.k = t2.k;
 
70
SELECT * FROM t1 WHERE k < 20 ORDER BY t1.k;
 
71
SELECT * FROM t2 WHERE k < 20 ORDER BY t2.k;
 
72
 
 
73
COMMIT;
 
74
 
 
75
--echo connection root1;
 
76
CONNECTION root1;
 
77
ROLLBACK;
 
78
 
 
79
--echo connection default;
 
80
CONNECTION default;
 
81
SELECT * FROM t1 WHERE k < 40 ORDER BY t1.k;
 
82
SELECT * FROM t2 WHERE k < 40 ORDER BY t2.k;
 
83
 
 
84
--echo connection root1;
 
85
CONNECTION root1;
 
86
SELECT * FROM t1 WHERE k < 40 ORDER BY t1.k;
 
87
SELECT * FROM t2 WHERE k < 40 ORDER BY t2.k;
 
88
DISCONNECT root1;
 
89
--echo connection default;
 
90
CONNECTION default;
 
91
DROP TABLE t1, t2;
 
92
 
 
93