| Parsed test spec with 2 sessions |
| |
| starting permutation: s1a s1b s1c s2a s2b s2c |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| |
| starting permutation: s1a s1b s2a s1c s2b s2c |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| |
| starting permutation: s1a s1b s2a s2b s1c s2c |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |
| step s2c: COMMIT; |
| |
| starting permutation: s1a s1b s2a s2b s2c s1c |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| step s1c: COMMIT; |
| |
| starting permutation: s1a s2a s1b s1c s2b s2c |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| |
| starting permutation: s1a s2a s1b s2b s1c s2c |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |
| step s2c: COMMIT; |
| |
| starting permutation: s1a s2a s1b s2b s2c s1c |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| step s1c: COMMIT; |
| |
| starting permutation: s1a s2a s2b s1b s1c s2c |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |
| step s2c: COMMIT; |
| |
| starting permutation: s1a s2a s2b s1b s2c s1c |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| step s1c: COMMIT; |
| |
| starting permutation: s1a s2a s2b s2c s1b s1c |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |
| |
| starting permutation: s2a s1a s1b s1c s2b s2c |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| |
| starting permutation: s2a s1a s1b s2b s1c s2c |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |
| step s2c: COMMIT; |
| |
| starting permutation: s2a s1a s1b s2b s2c s1c |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| step s1c: COMMIT; |
| |
| starting permutation: s2a s1a s2b s1b s1c s2c |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |
| step s2c: COMMIT; |
| |
| starting permutation: s2a s1a s2b s1b s2c s1c |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| step s1c: COMMIT; |
| |
| starting permutation: s2a s1a s2b s2c s1b s1c |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |
| |
| starting permutation: s2a s2b s1a s1b s1c s2c |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |
| step s2c: COMMIT; |
| |
| starting permutation: s2a s2b s1a s1b s2c s1c |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| step s1c: COMMIT; |
| |
| starting permutation: s2a s2b s1a s2c s1b s1c |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 2|bar |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |
| |
| starting permutation: s2a s2b s2c s1a s1b s1c |
| step s2a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s2c: COMMIT; |
| step s1a: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1b: SELECT * FROM queue ORDER BY id FOR UPDATE SKIP LOCKED LIMIT 1; |
| id|data|status |
| --+----+------ |
| 1|foo |NEW |
| (1 row) |
| |
| step s1c: COMMIT; |