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