1Parsed test spec with 2 sessions 2 3starting permutation: s1s s1u s1r s1l s1c s2l s2c 4step s1s: SAVEPOINT f; 5step s1u: UPDATE foo SET key = 2; 6step s1r: ROLLBACK TO f; 7step s1l: SELECT * FROM foo FOR KEY SHARE; 8key|value 9---+----- 10 1| 1 11(1 row) 12 13step s1c: COMMIT; 14step s2l: SELECT * FROM foo FOR KEY SHARE; 15key|value 16---+----- 17 1| 1 18(1 row) 19 20step s2c: COMMIT; 21 22starting permutation: s1s s1u s1r s1l s2l s1c s2c 23step s1s: SAVEPOINT f; 24step s1u: UPDATE foo SET key = 2; 25step s1r: ROLLBACK TO f; 26step s1l: SELECT * FROM foo FOR KEY SHARE; 27key|value 28---+----- 29 1| 1 30(1 row) 31 32step s2l: SELECT * FROM foo FOR KEY SHARE; 33key|value 34---+----- 35 1| 1 36(1 row) 37 38step s1c: COMMIT; 39step s2c: COMMIT; 40 41starting permutation: s1s s1u s1r s1l s2l s2c s1c 42step s1s: SAVEPOINT f; 43step s1u: UPDATE foo SET key = 2; 44step s1r: ROLLBACK TO f; 45step s1l: SELECT * FROM foo FOR KEY SHARE; 46key|value 47---+----- 48 1| 1 49(1 row) 50 51step s2l: SELECT * FROM foo FOR KEY SHARE; 52key|value 53---+----- 54 1| 1 55(1 row) 56 57step s2c: COMMIT; 58step s1c: COMMIT; 59 60starting permutation: s1s s1u s1r s2l s1l s1c s2c 61step s1s: SAVEPOINT f; 62step s1u: UPDATE foo SET key = 2; 63step s1r: ROLLBACK TO f; 64step s2l: SELECT * FROM foo FOR KEY SHARE; 65key|value 66---+----- 67 1| 1 68(1 row) 69 70step s1l: SELECT * FROM foo FOR KEY SHARE; 71key|value 72---+----- 73 1| 1 74(1 row) 75 76step s1c: COMMIT; 77step s2c: COMMIT; 78 79starting permutation: s1s s1u s1r s2l s1l s2c s1c 80step s1s: SAVEPOINT f; 81step s1u: UPDATE foo SET key = 2; 82step s1r: ROLLBACK TO f; 83step s2l: SELECT * FROM foo FOR KEY SHARE; 84key|value 85---+----- 86 1| 1 87(1 row) 88 89step s1l: SELECT * FROM foo FOR KEY SHARE; 90key|value 91---+----- 92 1| 1 93(1 row) 94 95step s2c: COMMIT; 96step s1c: COMMIT; 97 98starting permutation: s1s s1u s1r s2l s2c s1l s1c 99step s1s: SAVEPOINT f; 100step s1u: UPDATE foo SET key = 2; 101step s1r: ROLLBACK TO f; 102step s2l: SELECT * FROM foo FOR KEY SHARE; 103key|value 104---+----- 105 1| 1 106(1 row) 107 108step s2c: COMMIT; 109step s1l: SELECT * FROM foo FOR KEY SHARE; 110key|value 111---+----- 112 1| 1 113(1 row) 114 115step s1c: COMMIT; 116 117starting permutation: s1s s1u s2l s1r s1l s1c s2c 118step s1s: SAVEPOINT f; 119step s1u: UPDATE foo SET key = 2; 120step s2l: SELECT * FROM foo FOR KEY SHARE; <waiting ...> 121step s1r: ROLLBACK TO f; 122step s2l: <... completed> 123key|value 124---+----- 125 1| 1 126(1 row) 127 128step s1l: SELECT * FROM foo FOR KEY SHARE; 129key|value 130---+----- 131 1| 1 132(1 row) 133 134step s1c: COMMIT; 135step s2c: COMMIT; 136 137starting permutation: s1s s1u s2l s1r s1l s2c s1c 138step s1s: SAVEPOINT f; 139step s1u: UPDATE foo SET key = 2; 140step s2l: SELECT * FROM foo FOR KEY SHARE; <waiting ...> 141step s1r: ROLLBACK TO f; 142step s2l: <... completed> 143key|value 144---+----- 145 1| 1 146(1 row) 147 148step s1l: SELECT * FROM foo FOR KEY SHARE; 149key|value 150---+----- 151 1| 1 152(1 row) 153 154step s2c: COMMIT; 155step s1c: COMMIT; 156 157starting permutation: s1s s1u s2l s1r s2c s1l s1c 158step s1s: SAVEPOINT f; 159step s1u: UPDATE foo SET key = 2; 160step s2l: SELECT * FROM foo FOR KEY SHARE; <waiting ...> 161step s1r: ROLLBACK TO f; 162step s2l: <... completed> 163key|value 164---+----- 165 1| 1 166(1 row) 167 168step s2c: COMMIT; 169step s1l: SELECT * FROM foo FOR KEY SHARE; 170key|value 171---+----- 172 1| 1 173(1 row) 174 175step s1c: COMMIT; 176 177starting permutation: s1s s2l s1u s2c s1r s1l s1c 178step s1s: SAVEPOINT f; 179step s2l: SELECT * FROM foo FOR KEY SHARE; 180key|value 181---+----- 182 1| 1 183(1 row) 184 185step s1u: UPDATE foo SET key = 2; <waiting ...> 186step s2c: COMMIT; 187step s1u: <... completed> 188step s1r: ROLLBACK TO f; 189step s1l: SELECT * FROM foo FOR KEY SHARE; 190key|value 191---+----- 192 1| 1 193(1 row) 194 195step s1c: COMMIT; 196 197starting permutation: s1s s2l s2c s1u s1r s1l s1c 198step s1s: SAVEPOINT f; 199step s2l: SELECT * FROM foo FOR KEY SHARE; 200key|value 201---+----- 202 1| 1 203(1 row) 204 205step s2c: COMMIT; 206step s1u: UPDATE foo SET key = 2; 207step s1r: ROLLBACK TO f; 208step s1l: SELECT * FROM foo FOR KEY SHARE; 209key|value 210---+----- 211 1| 1 212(1 row) 213 214step s1c: COMMIT; 215 216starting permutation: s2l s1s s1u s2c s1r s1l s1c 217step s2l: SELECT * FROM foo FOR KEY SHARE; 218key|value 219---+----- 220 1| 1 221(1 row) 222 223step s1s: SAVEPOINT f; 224step s1u: UPDATE foo SET key = 2; <waiting ...> 225step s2c: COMMIT; 226step s1u: <... completed> 227step s1r: ROLLBACK TO f; 228step s1l: SELECT * FROM foo FOR KEY SHARE; 229key|value 230---+----- 231 1| 1 232(1 row) 233 234step s1c: COMMIT; 235 236starting permutation: s2l s1s s2c s1u s1r s1l s1c 237step s2l: SELECT * FROM foo FOR KEY SHARE; 238key|value 239---+----- 240 1| 1 241(1 row) 242 243step s1s: SAVEPOINT f; 244step s2c: COMMIT; 245step s1u: UPDATE foo SET key = 2; 246step s1r: ROLLBACK TO f; 247step s1l: SELECT * FROM foo FOR KEY SHARE; 248key|value 249---+----- 250 1| 1 251(1 row) 252 253step s1c: COMMIT; 254 255starting permutation: s2l s2c s1s s1u s1r s1l s1c 256step s2l: SELECT * FROM foo FOR KEY SHARE; 257key|value 258---+----- 259 1| 1 260(1 row) 261 262step s2c: COMMIT; 263step s1s: SAVEPOINT f; 264step s1u: UPDATE foo SET key = 2; 265step s1r: ROLLBACK TO f; 266step s1l: SELECT * FROM foo FOR KEY SHARE; 267key|value 268---+----- 269 1| 1 270(1 row) 271 272step s1c: COMMIT; 273