716 lines
14 KiB
Plaintext
716 lines
14 KiB
Plaintext
Parsed test spec with 2 sessions
|
|
|
|
starting permutation: rxy1 wx1 c1 wy2 rxy2 c2
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step c1: COMMIT;
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
(9 rows)
|
|
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: rxy1 wx1 wy2 c1 rxy2 c2
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step c1: COMMIT;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: rxy1 wx1 wy2 rxy2 c1 c2
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rxy1 wx1 wy2 rxy2 c2 c1
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rxy1 wy2 wx1 c1 rxy2 c2
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step c1: COMMIT;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: rxy1 wy2 wx1 rxy2 c1 c2
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rxy1 wy2 wx1 rxy2 c2 c1
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rxy1 wy2 rxy2 wx1 c1 c2
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rxy1 wy2 rxy2 wx1 c2 c1
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rxy1 wy2 rxy2 c2 wx1 c1
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step c2: COMMIT;
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c1: COMMIT;
|
|
|
|
starting permutation: wy2 rxy1 wx1 c1 rxy2 c2
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step c1: COMMIT;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: wy2 rxy1 wx1 rxy2 c1 c2
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: wy2 rxy1 wx1 rxy2 c2 c1
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: wy2 rxy1 rxy2 wx1 c1 c2
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: wy2 rxy1 rxy2 wx1 c2 c1
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: wy2 rxy1 rxy2 c2 wx1 c1
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step c2: COMMIT;
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c1: COMMIT;
|
|
|
|
starting permutation: wy2 rxy2 rxy1 wx1 c1 c2
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: wy2 rxy2 rxy1 wx1 c2 c1
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: wy2 rxy2 rxy1 c2 wx1 c1
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
9|a | 1
|
|
10|a | 1
|
|
(11 rows)
|
|
|
|
step c2: COMMIT;
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c1: COMMIT;
|
|
|
|
starting permutation: wy2 rxy2 c2 rxy1 wx1 c1
|
|
step wy2: update test_t set val2 = 2 where val2 = 1 and id = 9;
|
|
step rxy2: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step c2: COMMIT;
|
|
step rxy1: select * from test_t where val2 = 1;
|
|
id|val1|val2
|
|
--+----+----
|
|
0|a | 1
|
|
1|a | 1
|
|
2|a | 1
|
|
3|a | 1
|
|
4|a | 1
|
|
5|a | 1
|
|
6|a | 1
|
|
7|a | 1
|
|
8|a | 1
|
|
10|a | 1
|
|
(10 rows)
|
|
|
|
step wx1: update test_t set val2 = 2 where val2 = 1 and id = 10;
|
|
step c1: COMMIT;
|