1933.1.7
by Brian Aker
Merge in wait_until command. |
1 |
# we are going to have everything owned by a particular connection
|
2 |
connect (barrier_owner,localhost,root,,); |
|
3 |
connection barrier_owner; |
|
4 |
set @my_barrier= "barrier"; |
|
5 |
SELECT CREATE_BARRIER(@my_barrier); |
|
6 |
||
7 |
connection default; |
|
8 |
set @my_barrier= "barrier"; |
|
1996.1.1
by Brian Aker
Update name usage for user defined objects. |
9 |
SELECT USER_BARRIER_NAME FROM DATA_DICTIONARY.USER_DEFINED_BARRIERS WHERE USER_BARRIER_NAME=@my_barrier; |
1933.1.8
by Brian Aker
Updating so of the concurrency test. |
10 |
SET @execute= "SELECT WAIT('barrier')"; |
11 |
SELECT SIGNAL(@my_barrier); |
|
12 |
||
13 |
EXECUTE @execute CONCURRENT; |
|
14 |
EXECUTE @execute CONCURRENT; |
|
15 |
EXECUTE @execute CONCURRENT; |
|
16 |
||
17 |
SELECT WAIT_UNTIL(@my_barrier, 3); |
|
18 |
||
1933.1.7
by Brian Aker
Merge in wait_until command. |
19 |
### Now lets see what the processlist shows.
|
1939.1.3
by Brian Aker
Fix tests so that they have ORDER BY on them. |
20 |
SELECT USER,INFO FROM DATA_DICTIONARY.PROCESSLIST ORDER BY ID; |
1933.1.8
by Brian Aker
Updating so of the concurrency test. |
21 |
SELECT SIGNAL(@my_barrier); |
1933.1.7
by Brian Aker
Merge in wait_until command. |
22 |
|
23 |
## Wait till we know the above is done (this will be replaced with broadcast() in the future)
|
|
24 |
#EXECUTE @sleep;
|
|
25 |
#
|
|
26 |
## Check that a concurrent session cannot create one of itself, but can call
|
|
27 |
## execute.
|
|
28 |
#SET @var="EXECUTE \"SELECT SLEEP(3)\"";
|
|
29 |
#EXECUTE @var CONCURRENT;
|
|
30 |
#SELECT USER,INFO FROM DATA_DICTIONARY.PROCESSLIST;
|
|
31 |
#
|
|
32 |
## Wait till everything closes out
|
|
33 |
#EXECUTE @sleep;
|
|
34 |
#SET @var="EXECUTE \"SELECT SLEEP(3)\" CONCURRENT";
|
|
35 |
#EXECUTE @var CONCURRENT;
|
|
36 |
#SELECT USER,INFO FROM DATA_DICTIONARY.PROCESSLIST;
|
|
37 |
#
|
|
38 |
#
|
|
39 |
## Test multiple statements
|
|
40 |
#
|
|
41 |
#SET @var="CREATE SCHEMA d; CREATE SCHEMA e;";
|
|
42 |
#EXECUTE @var CONCURRENT;
|
|
43 |
#
|
|
44 |
## Wait for a second...
|
|
45 |
#EXECUTE @sleep;
|
|
46 |
#show schemas LIKE "d";
|
|
47 |
#show schemas LIKE "e";
|
|
48 |
#DROP SCHEMA d;
|
|
49 |
#DROP SCHEMA e;
|
|
50 |
#
|
|
51 |
#
|
|
52 |
## We are now going to make sure that data is actually committed.
|
|
53 |
#CREATE TABLE foo (a serial);
|
|
54 |
#
|
|
55 |
#SET @var="INSERT INTO foo VALUES(); INSERT INTO foo VALUES ()";
|
|
56 |
#EXECUTE @var CONCURRENT;
|
|
57 |
#EXECUTE @sleep;
|
|
58 |
#SELECT * FROM foo;
|
|
59 |
#
|
|
60 |
#SET @var="SAVEPOINT mine; INSERT INTO foo VALUES(); INSERT INTO foo VALUES ()";
|
|
61 |
#EXECUTE @var CONCURRENT;
|
|
62 |
#EXECUTE @sleep;
|
|
63 |
#SELECT * FROM foo;
|
|
64 |
#
|
|
65 |
#SET @var="SAVEPOINT mine; INSERT INTO foo VALUES(); INSERT INTO foo VALUES (); RELEASE SAVEPOINT mine";
|
|
66 |
#EXECUTE @var CONCURRENT;
|
|
67 |
#EXECUTE @sleep;
|
|
68 |
#SELECT * FROM foo;
|
|
69 |
#
|
|
70 |
#SET @var="SAVEPOINT mine; INSERT INTO foo VALUES (); INSERT INTO foo VALUES (); ROLLBACK TO SAVEPOINT mine";
|
|
71 |
#EXECUTE @var CONCURRENT;
|
|
72 |
#EXECUTE @sleep;
|
|
73 |
#SELECT * FROM foo;
|
|
74 |
#
|
|
75 |
#DROP TABLE foo;
|
|
76 |
#
|