11Parsed test spec with 3 sessions
22
33starting permutation: wx1 wx2 c1 c2 read
4- step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking';
5- step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking'; <waiting ...>
4+ step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
5+ balance
6+
7+ 400
8+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; <waiting ...>
69step c1: COMMIT;
710step wx2: <... completed>
11+ balance
12+
13+ 850
814step c2: COMMIT;
915step read: SELECT * FROM accounts ORDER BY accountid;
1016accountid balance
@@ -13,17 +19,245 @@ checking 850
1319savings 600
1420
1521starting permutation: wy1 wy2 c1 c2 read
16- step wy1: UPDATE accounts SET balance = balance + 500 WHERE accountid = 'checking';
17- step wy2: UPDATE accounts SET balance = balance + 1000 WHERE accountid = 'checking' AND balance < 1000; <waiting ...>
22+ step wy1: UPDATE accounts SET balance = balance + 500 WHERE accountid = 'checking' RETURNING balance;
23+ balance
24+
25+ 1100
26+ step wy2: UPDATE accounts SET balance = balance + 1000 WHERE accountid = 'checking' AND balance < 1000 RETURNING balance; <waiting ...>
1827step c1: COMMIT;
1928step wy2: <... completed>
29+ balance
30+
2031step c2: COMMIT;
2132step read: SELECT * FROM accounts ORDER BY accountid;
2233accountid balance
2334
2435checking 1100
2536savings 600
2637
38+ starting permutation: wx1 wx2 r1 c2 read
39+ step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
40+ balance
41+
42+ 400
43+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; <waiting ...>
44+ step r1: ROLLBACK;
45+ step wx2: <... completed>
46+ balance
47+
48+ 1050
49+ step c2: COMMIT;
50+ step read: SELECT * FROM accounts ORDER BY accountid;
51+ accountid balance
52+
53+ checking 1050
54+ savings 600
55+
56+ starting permutation: wy1 wy2 r1 c2 read
57+ step wy1: UPDATE accounts SET balance = balance + 500 WHERE accountid = 'checking' RETURNING balance;
58+ balance
59+
60+ 1100
61+ step wy2: UPDATE accounts SET balance = balance + 1000 WHERE accountid = 'checking' AND balance < 1000 RETURNING balance; <waiting ...>
62+ step r1: ROLLBACK;
63+ step wy2: <... completed>
64+ balance
65+
66+ 1600
67+ step c2: COMMIT;
68+ step read: SELECT * FROM accounts ORDER BY accountid;
69+ accountid balance
70+
71+ checking 1600
72+ savings 600
73+
74+ starting permutation: wx1 d1 wx2 c1 c2 read
75+ step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
76+ balance
77+
78+ 400
79+ step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance;
80+ balance
81+
82+ 400
83+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; <waiting ...>
84+ step c1: COMMIT;
85+ step wx2: <... completed>
86+ balance
87+
88+ step c2: COMMIT;
89+ step read: SELECT * FROM accounts ORDER BY accountid;
90+ accountid balance
91+
92+ savings 600
93+
94+ starting permutation: wx2 d1 c2 c1 read
95+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
96+ balance
97+
98+ 1050
99+ step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; <waiting ...>
100+ step c2: COMMIT;
101+ step d1: <... completed>
102+ balance
103+
104+ 1050
105+ step c1: COMMIT;
106+ step read: SELECT * FROM accounts ORDER BY accountid;
107+ accountid balance
108+
109+ savings 600
110+
111+ starting permutation: wx2 wx2 d1 c2 c1 read
112+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
113+ balance
114+
115+ 1050
116+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
117+ balance
118+
119+ 1500
120+ step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; <waiting ...>
121+ step c2: COMMIT;
122+ step d1: <... completed>
123+ balance
124+
125+ step c1: COMMIT;
126+ step read: SELECT * FROM accounts ORDER BY accountid;
127+ accountid balance
128+
129+ checking 1500
130+ savings 600
131+
132+ starting permutation: wx2 d2 d1 c2 c1 read
133+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
134+ balance
135+
136+ 1050
137+ step d2: DELETE FROM accounts WHERE accountid = 'checking';
138+ step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; <waiting ...>
139+ step c2: COMMIT;
140+ step d1: <... completed>
141+ balance
142+
143+ step c1: COMMIT;
144+ step read: SELECT * FROM accounts ORDER BY accountid;
145+ accountid balance
146+
147+ savings 600
148+
149+ starting permutation: wx1 d1 wx2 r1 c2 read
150+ step wx1: UPDATE accounts SET balance = balance - 200 WHERE accountid = 'checking' RETURNING balance;
151+ balance
152+
153+ 400
154+ step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance;
155+ balance
156+
157+ 400
158+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; <waiting ...>
159+ step r1: ROLLBACK;
160+ step wx2: <... completed>
161+ balance
162+
163+ 1050
164+ step c2: COMMIT;
165+ step read: SELECT * FROM accounts ORDER BY accountid;
166+ accountid balance
167+
168+ checking 1050
169+ savings 600
170+
171+ starting permutation: wx2 d1 r2 c1 read
172+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
173+ balance
174+
175+ 1050
176+ step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; <waiting ...>
177+ step r2: ROLLBACK;
178+ step d1: <... completed>
179+ balance
180+
181+ 600
182+ step c1: COMMIT;
183+ step read: SELECT * FROM accounts ORDER BY accountid;
184+ accountid balance
185+
186+ savings 600
187+
188+ starting permutation: wx2 wx2 d1 r2 c1 read
189+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
190+ balance
191+
192+ 1050
193+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
194+ balance
195+
196+ 1500
197+ step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; <waiting ...>
198+ step r2: ROLLBACK;
199+ step d1: <... completed>
200+ balance
201+
202+ 600
203+ step c1: COMMIT;
204+ step read: SELECT * FROM accounts ORDER BY accountid;
205+ accountid balance
206+
207+ savings 600
208+
209+ starting permutation: wx2 d2 d1 r2 c1 read
210+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
211+ balance
212+
213+ 1050
214+ step d2: DELETE FROM accounts WHERE accountid = 'checking';
215+ step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance; <waiting ...>
216+ step r2: ROLLBACK;
217+ step d1: <... completed>
218+ balance
219+
220+ 600
221+ step c1: COMMIT;
222+ step read: SELECT * FROM accounts ORDER BY accountid;
223+ accountid balance
224+
225+ savings 600
226+
227+ starting permutation: d1 wx2 c1 c2 read
228+ step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance;
229+ balance
230+
231+ 600
232+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; <waiting ...>
233+ step c1: COMMIT;
234+ step wx2: <... completed>
235+ balance
236+
237+ step c2: COMMIT;
238+ step read: SELECT * FROM accounts ORDER BY accountid;
239+ accountid balance
240+
241+ savings 600
242+
243+ starting permutation: d1 wx2 r1 c2 read
244+ step d1: DELETE FROM accounts WHERE accountid = 'checking' AND balance < 1500 RETURNING balance;
245+ balance
246+
247+ 600
248+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance; <waiting ...>
249+ step r1: ROLLBACK;
250+ step wx2: <... completed>
251+ balance
252+
253+ 1050
254+ step c2: COMMIT;
255+ step read: SELECT * FROM accounts ORDER BY accountid;
256+ accountid balance
257+
258+ checking 1050
259+ savings 600
260+
27261starting permutation: upsert1 upsert2 c1 c2 read
28262step upsert1:
29263 WITH upsert AS
@@ -106,7 +340,10 @@ a b c
106340step c2: COMMIT;
107341
108342starting permutation: wx2 partiallock c2 c1 read
109- step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking';
343+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
344+ balance
345+
346+ 1050
110347step partiallock:
111348 SELECT * FROM accounts a1, accounts a2
112349 WHERE a1.accountid = a2.accountid
@@ -126,7 +363,10 @@ checking 1050
126363savings 600
127364
128365starting permutation: wx2 lockwithvalues c2 c1 read
129- step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking';
366+ step wx2: UPDATE accounts SET balance = balance + 450 WHERE accountid = 'checking' RETURNING balance;
367+ balance
368+
369+ 1050
130370step lockwithvalues:
131371 SELECT * FROM accounts a1, (values('checking'),('savings')) v(id)
132372 WHERE a1.accountid = v.id
0 commit comments