1 Parsed test spec with 2 sessions
3 starting permutation: s1_begin s1_tuplock1 s2_rowlocks s1_commit
5 step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
12 step s2_rowlocks: SELECT locked_row, multi, modes FROM pgrowlocks('multixact_conflict');
13 locked_row|multi|modes
14 ----------+-----+-----------------
15 (0,1) |f |{"For Key Share"}
16 (0,2) |f |{"For Key Share"}
19 step s1_commit: COMMIT;
21 starting permutation: s1_begin s1_tuplock2 s2_rowlocks s1_commit
23 step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
30 step s2_rowlocks: SELECT locked_row, multi, modes FROM pgrowlocks('multixact_conflict');
31 locked_row|multi|modes
32 ----------+-----+-------------
33 (0,1) |f |{"For Share"}
34 (0,2) |f |{"For Share"}
37 step s1_commit: COMMIT;
39 starting permutation: s1_begin s1_tuplock3 s2_rowlocks s1_commit
41 step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE;
48 step s2_rowlocks: SELECT locked_row, multi, modes FROM pgrowlocks('multixact_conflict');
49 locked_row|multi|modes
50 ----------+-----+---------------------
51 (0,1) |f |{"For No Key Update"}
52 (0,2) |f |{"For No Key Update"}
55 step s1_commit: COMMIT;
57 starting permutation: s1_begin s1_tuplock4 s2_rowlocks s1_commit
59 step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE;
66 step s2_rowlocks: SELECT locked_row, multi, modes FROM pgrowlocks('multixact_conflict');
67 locked_row|multi|modes
68 ----------+-----+--------------
69 (0,1) |f |{"For Update"}
70 (0,2) |f |{"For Update"}
73 step s1_commit: COMMIT;
75 starting permutation: s1_begin s1_updatea s2_rowlocks s1_commit
77 step s1_updatea: UPDATE multixact_conflict SET a = 10 WHERE a = 1;
78 step s2_rowlocks: SELECT locked_row, multi, modes FROM pgrowlocks('multixact_conflict');
79 locked_row|multi|modes
80 ----------+-----+--------
84 step s1_commit: COMMIT;
86 starting permutation: s1_begin s1_updateb s2_rowlocks s1_commit
88 step s1_updateb: UPDATE multixact_conflict SET b = 11 WHERE b = 4;
89 step s2_rowlocks: SELECT locked_row, multi, modes FROM pgrowlocks('multixact_conflict');
90 locked_row|multi|modes
91 ----------+-----+-----------------
92 (0,2) |f |{"No Key Update"}
95 step s1_commit: COMMIT;
97 starting permutation: s1_begin s1_lcksvpt s1_tuplock1 s2_rowlocks s1_commit
99 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT s;
106 step s1_tuplock1: SELECT * FROM multixact_conflict FOR KEY SHARE;
113 step s2_rowlocks: SELECT locked_row, multi, modes FROM pgrowlocks('multixact_conflict');
114 locked_row|multi|modes
115 ----------+-----+-----------------
116 (0,1) |f |{"For Key Share"}
117 (0,2) |f |{"For Key Share"}
120 step s1_commit: COMMIT;
122 starting permutation: s1_begin s1_lcksvpt s1_tuplock2 s2_rowlocks s1_commit
123 step s1_begin: BEGIN;
124 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT s;
131 step s1_tuplock2: SELECT * FROM multixact_conflict FOR SHARE;
138 step s2_rowlocks: SELECT locked_row, multi, modes FROM pgrowlocks('multixact_conflict');
139 locked_row|multi|modes
140 ----------+-----+-----------------------------
141 (0,1) |t |{"For Key Share","For Share"}
142 (0,2) |t |{"For Key Share","For Share"}
145 step s1_commit: COMMIT;
147 starting permutation: s1_begin s1_lcksvpt s1_tuplock3 s2_rowlocks s1_commit
148 step s1_begin: BEGIN;
149 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT s;
156 step s1_tuplock3: SELECT * FROM multixact_conflict FOR NO KEY UPDATE;
163 step s2_rowlocks: SELECT locked_row, multi, modes FROM pgrowlocks('multixact_conflict');
164 locked_row|multi|modes
165 ----------+-----+-------------------------------------
166 (0,1) |t |{"For Key Share","For No Key Update"}
167 (0,2) |t |{"For Key Share","For No Key Update"}
170 step s1_commit: COMMIT;
172 starting permutation: s1_begin s1_lcksvpt s1_tuplock4 s2_rowlocks s1_commit
173 step s1_begin: BEGIN;
174 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT s;
181 step s1_tuplock4: SELECT * FROM multixact_conflict FOR UPDATE;
188 step s2_rowlocks: SELECT locked_row, multi, modes FROM pgrowlocks('multixact_conflict');
189 locked_row|multi|modes
190 ----------+-----+------------------------------
191 (0,1) |t |{"For Key Share","For Update"}
192 (0,2) |t |{"For Key Share","For Update"}
195 step s1_commit: COMMIT;
197 starting permutation: s1_begin s1_lcksvpt s1_updatea s2_rowlocks s1_commit
198 step s1_begin: BEGIN;
199 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT s;
206 step s1_updatea: UPDATE multixact_conflict SET a = 10 WHERE a = 1;
207 step s2_rowlocks: SELECT locked_row, multi, modes FROM pgrowlocks('multixact_conflict');
208 locked_row|multi|modes
209 ----------+-----+------------------------
210 (0,1) |t |{"For Key Share",Update}
211 (0,2) |f |{"For Key Share"}
214 step s1_commit: COMMIT;
216 starting permutation: s1_begin s1_lcksvpt s1_updateb s2_rowlocks s1_commit
217 step s1_begin: BEGIN;
218 step s1_lcksvpt: SELECT * FROM multixact_conflict FOR KEY SHARE; SAVEPOINT s;
225 step s1_updateb: UPDATE multixact_conflict SET b = 11 WHERE b = 4;
226 step s2_rowlocks: SELECT locked_row, multi, modes FROM pgrowlocks('multixact_conflict');
227 locked_row|multi|modes
228 ----------+-----+---------------------------------
229 (0,1) |f |{"For Key Share"}
230 (0,2) |t |{"For Key Share","No Key Update"}
233 step s1_commit: COMMIT;