1
# we are going to have everything owned by a particular connection
2
connect (barrier_owner,localhost,bob,,);
3
connection barrier_owner;
4
set @my_barrier= "barrier";
5
SELECT CREATE_BARRIER(@my_barrier);
6
SELECT USER_BARRIER_NAME FROM DATA_DICTIONARY.USER_DEFINED_BARRIERS WHERE USER_BARRIER_NAME=@my_barrier;
9
set @my_barrier= "barrier";
10
SELECT USER_BARRIER_NAME FROM DATA_DICTIONARY.USER_DEFINED_BARRIERS WHERE USER_BARRIER_NAME=@my_barrier;
11
SET @execute= "SELECT WAIT('barrier')";
12
#SELECT SIGNAL(@my_barrier);
14
#EXECUTE @execute CONCURRENT;
15
#EXECUTE @execute CONCURRENT;
16
#EXECUTE @execute CONCURRENT;
18
#SELECT WAIT_UNTIL(@my_barrier, 3);
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);
24
## Wait till we know the above is done (this will be replaced with broadcast() in the future)
27
## Check that a concurrent session cannot create one of itself, but can call
29
#SET @var="EXECUTE \"SELECT SLEEP(3)\"";
30
#EXECUTE @var CONCURRENT;
31
#SELECT USER,INFO FROM DATA_DICTIONARY.PROCESSLIST;
33
## Wait till everything closes out
35
#SET @var="EXECUTE \"SELECT SLEEP(3)\" CONCURRENT";
36
#EXECUTE @var CONCURRENT;
37
#SELECT USER,INFO FROM DATA_DICTIONARY.PROCESSLIST;
40
## Test multiple statements
42
#SET @var="CREATE SCHEMA d; CREATE SCHEMA e;";
43
#EXECUTE @var CONCURRENT;
45
## Wait for a second...
47
#show schemas LIKE "d";
48
#show schemas LIKE "e";
53
## We are now going to make sure that data is actually committed.
54
#CREATE TABLE foo (a serial);
56
#SET @var="INSERT INTO foo VALUES(); INSERT INTO foo VALUES ()";
57
#EXECUTE @var CONCURRENT;
61
#SET @var="SAVEPOINT mine; INSERT INTO foo VALUES(); INSERT INTO foo VALUES ()";
62
#EXECUTE @var CONCURRENT;
66
#SET @var="SAVEPOINT mine; INSERT INTO foo VALUES(); INSERT INTO foo VALUES (); RELEASE SAVEPOINT mine";
67
#EXECUTE @var CONCURRENT;
71
#SET @var="SAVEPOINT mine; INSERT INTO foo VALUES (); INSERT INTO foo VALUES (); ROLLBACK TO SAVEPOINT mine";
72
#EXECUTE @var CONCURRENT;