1Parsed test spec with 2 sessions
2
3starting permutation: beginrr1 beginrr2 donothing1 c1 donothing2 c2 show
4step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ;
5step beginrr2: BEGIN ISOLATION LEVEL REPEATABLE READ;
6step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING;
7step c1: COMMIT;
8step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING;
9step c2: COMMIT;
10step show: SELECT * FROM ints;
11key|val
12---+----------
13  1|donothing1
14(1 row)
15
16
17starting permutation: beginrr1 beginrr2 donothing2 c2 donothing1 c1 show
18step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ;
19step beginrr2: BEGIN ISOLATION LEVEL REPEATABLE READ;
20step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING;
21step c2: COMMIT;
22step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING;
23step c1: COMMIT;
24step show: SELECT * FROM ints;
25key|val
26---+----------
27  1|donothing2
28(1 row)
29
30
31starting permutation: beginrr1 beginrr2 donothing1 donothing2 c1 c2 show
32step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ;
33step beginrr2: BEGIN ISOLATION LEVEL REPEATABLE READ;
34step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING;
35step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING; <waiting ...>
36step c1: COMMIT;
37step donothing2: <... completed>
38ERROR:  could not serialize access due to concurrent update
39step c2: COMMIT;
40step show: SELECT * FROM ints;
41key|val
42---+----------
43  1|donothing1
44(1 row)
45
46
47starting permutation: beginrr1 beginrr2 donothing2 donothing1 c2 c1 show
48step beginrr1: BEGIN ISOLATION LEVEL REPEATABLE READ;
49step beginrr2: BEGIN ISOLATION LEVEL REPEATABLE READ;
50step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING;
51step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING; <waiting ...>
52step c2: COMMIT;
53step donothing1: <... completed>
54ERROR:  could not serialize access due to concurrent update
55step c1: COMMIT;
56step show: SELECT * FROM ints;
57key|val
58---+----------
59  1|donothing2
60(1 row)
61
62
63starting permutation: begins1 begins2 donothing1 c1 donothing2 c2 show
64step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE;
65step begins2: BEGIN ISOLATION LEVEL SERIALIZABLE;
66step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING;
67step c1: COMMIT;
68step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING;
69step c2: COMMIT;
70step show: SELECT * FROM ints;
71key|val
72---+----------
73  1|donothing1
74(1 row)
75
76
77starting permutation: begins1 begins2 donothing2 c2 donothing1 c1 show
78step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE;
79step begins2: BEGIN ISOLATION LEVEL SERIALIZABLE;
80step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING;
81step c2: COMMIT;
82step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING;
83step c1: COMMIT;
84step show: SELECT * FROM ints;
85key|val
86---+----------
87  1|donothing2
88(1 row)
89
90
91starting permutation: begins1 begins2 donothing1 donothing2 c1 c2 show
92step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE;
93step begins2: BEGIN ISOLATION LEVEL SERIALIZABLE;
94step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING;
95step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING; <waiting ...>
96step c1: COMMIT;
97step donothing2: <... completed>
98ERROR:  could not serialize access due to concurrent update
99step c2: COMMIT;
100step show: SELECT * FROM ints;
101key|val
102---+----------
103  1|donothing1
104(1 row)
105
106
107starting permutation: begins1 begins2 donothing2 donothing1 c2 c1 show
108step begins1: BEGIN ISOLATION LEVEL SERIALIZABLE;
109step begins2: BEGIN ISOLATION LEVEL SERIALIZABLE;
110step donothing2: INSERT INTO ints(key, val) VALUES(1, 'donothing2'), (1, 'donothing3') ON CONFLICT DO NOTHING;
111step donothing1: INSERT INTO ints(key, val) VALUES(1, 'donothing1') ON CONFLICT DO NOTHING; <waiting ...>
112step c2: COMMIT;
113step donothing1: <... completed>
114ERROR:  could not serialize access due to concurrent update
115step c1: COMMIT;
116step show: SELECT * FROM ints;
117key|val
118---+----------
119  1|donothing2
120(1 row)
121
122