156 lines
6.7 KiB
Plaintext
156 lines
6.7 KiB
Plaintext
Parsed test spec with 3 sessions
|
|
|
|
starting permutation: s2beginrr s3beginrr s1u s2donothing s1c s2c s3donothing s3c s2select
|
|
step s2beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ;
|
|
step s3beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ;
|
|
step s1u: UPDATE foo SET a=2, b=b || ' -> moved by session-1' WHERE a=1;
|
|
step s2donothing: INSERT INTO foo VALUES(1, 'session-2 donothing') ON CONFLICT DO NOTHING; <waiting ...>
|
|
step s1c: COMMIT;
|
|
step s2donothing: <... completed>
|
|
step s2c: COMMIT;
|
|
step s3donothing: INSERT INTO foo VALUES(2, 'session-3 donothing'), (2, 'session-3 donothing2') ON CONFLICT DO NOTHING;
|
|
step s3c: COMMIT;
|
|
step s2select: SELECT * FROM foo ORDER BY a;
|
|
a|b
|
|
-+-----------------------------------
|
|
1|session-2 donothing
|
|
2|initial tuple -> moved by session-1
|
|
(2 rows)
|
|
|
|
|
|
starting permutation: s2beginrr s3beginrr s1u s3donothing s1c s3c s2donothing s2c s2select
|
|
step s2beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ;
|
|
step s3beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ;
|
|
step s1u: UPDATE foo SET a=2, b=b || ' -> moved by session-1' WHERE a=1;
|
|
step s3donothing: INSERT INTO foo VALUES(2, 'session-3 donothing'), (2, 'session-3 donothing2') ON CONFLICT DO NOTHING; <waiting ...>
|
|
step s1c: COMMIT;
|
|
step s3donothing: <... completed>
|
|
ERROR: could not serialize access due to concurrent update
|
|
step s3c: COMMIT;
|
|
step s2donothing: INSERT INTO foo VALUES(1, 'session-2 donothing') ON CONFLICT DO NOTHING;
|
|
step s2c: COMMIT;
|
|
step s2select: SELECT * FROM foo ORDER BY a;
|
|
a|b
|
|
-+-----------------------------------
|
|
1|session-2 donothing
|
|
2|initial tuple -> moved by session-1
|
|
(2 rows)
|
|
|
|
|
|
starting permutation: s2beginrr s3beginrr s1u s2donothing s3donothing s1c s2c s3c s2select
|
|
step s2beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ;
|
|
step s3beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ;
|
|
step s1u: UPDATE foo SET a=2, b=b || ' -> moved by session-1' WHERE a=1;
|
|
step s2donothing: INSERT INTO foo VALUES(1, 'session-2 donothing') ON CONFLICT DO NOTHING; <waiting ...>
|
|
step s3donothing: INSERT INTO foo VALUES(2, 'session-3 donothing'), (2, 'session-3 donothing2') ON CONFLICT DO NOTHING; <waiting ...>
|
|
step s1c: COMMIT;
|
|
step s2donothing: <... completed>
|
|
step s3donothing: <... completed>
|
|
ERROR: could not serialize access due to concurrent update
|
|
step s2c: COMMIT;
|
|
step s3c: COMMIT;
|
|
step s2select: SELECT * FROM foo ORDER BY a;
|
|
a|b
|
|
-+-----------------------------------
|
|
1|session-2 donothing
|
|
2|initial tuple -> moved by session-1
|
|
(2 rows)
|
|
|
|
|
|
starting permutation: s2beginrr s3beginrr s1u s3donothing s2donothing s1c s3c s2c s2select
|
|
step s2beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ;
|
|
step s3beginrr: BEGIN ISOLATION LEVEL REPEATABLE READ;
|
|
step s1u: UPDATE foo SET a=2, b=b || ' -> moved by session-1' WHERE a=1;
|
|
step s3donothing: INSERT INTO foo VALUES(2, 'session-3 donothing'), (2, 'session-3 donothing2') ON CONFLICT DO NOTHING; <waiting ...>
|
|
step s2donothing: INSERT INTO foo VALUES(1, 'session-2 donothing') ON CONFLICT DO NOTHING; <waiting ...>
|
|
step s1c: COMMIT;
|
|
step s3donothing: <... completed>
|
|
ERROR: could not serialize access due to concurrent update
|
|
step s2donothing: <... completed>
|
|
step s3c: COMMIT;
|
|
step s2c: COMMIT;
|
|
step s2select: SELECT * FROM foo ORDER BY a;
|
|
a|b
|
|
-+-----------------------------------
|
|
1|session-2 donothing
|
|
2|initial tuple -> moved by session-1
|
|
(2 rows)
|
|
|
|
|
|
starting permutation: s2begins s3begins s1u s2donothing s1c s2c s3donothing s3c s2select
|
|
step s2begins: BEGIN ISOLATION LEVEL SERIALIZABLE;
|
|
step s3begins: BEGIN ISOLATION LEVEL SERIALIZABLE;
|
|
step s1u: UPDATE foo SET a=2, b=b || ' -> moved by session-1' WHERE a=1;
|
|
step s2donothing: INSERT INTO foo VALUES(1, 'session-2 donothing') ON CONFLICT DO NOTHING; <waiting ...>
|
|
step s1c: COMMIT;
|
|
step s2donothing: <... completed>
|
|
step s2c: COMMIT;
|
|
step s3donothing: INSERT INTO foo VALUES(2, 'session-3 donothing'), (2, 'session-3 donothing2') ON CONFLICT DO NOTHING;
|
|
step s3c: COMMIT;
|
|
step s2select: SELECT * FROM foo ORDER BY a;
|
|
a|b
|
|
-+-----------------------------------
|
|
1|session-2 donothing
|
|
2|initial tuple -> moved by session-1
|
|
(2 rows)
|
|
|
|
|
|
starting permutation: s2begins s3begins s1u s3donothing s1c s3c s2donothing s2c s2select
|
|
step s2begins: BEGIN ISOLATION LEVEL SERIALIZABLE;
|
|
step s3begins: BEGIN ISOLATION LEVEL SERIALIZABLE;
|
|
step s1u: UPDATE foo SET a=2, b=b || ' -> moved by session-1' WHERE a=1;
|
|
step s3donothing: INSERT INTO foo VALUES(2, 'session-3 donothing'), (2, 'session-3 donothing2') ON CONFLICT DO NOTHING; <waiting ...>
|
|
step s1c: COMMIT;
|
|
step s3donothing: <... completed>
|
|
ERROR: could not serialize access due to concurrent update
|
|
step s3c: COMMIT;
|
|
step s2donothing: INSERT INTO foo VALUES(1, 'session-2 donothing') ON CONFLICT DO NOTHING;
|
|
step s2c: COMMIT;
|
|
step s2select: SELECT * FROM foo ORDER BY a;
|
|
a|b
|
|
-+-----------------------------------
|
|
1|session-2 donothing
|
|
2|initial tuple -> moved by session-1
|
|
(2 rows)
|
|
|
|
|
|
starting permutation: s2begins s3begins s1u s2donothing s3donothing s1c s2c s3c s2select
|
|
step s2begins: BEGIN ISOLATION LEVEL SERIALIZABLE;
|
|
step s3begins: BEGIN ISOLATION LEVEL SERIALIZABLE;
|
|
step s1u: UPDATE foo SET a=2, b=b || ' -> moved by session-1' WHERE a=1;
|
|
step s2donothing: INSERT INTO foo VALUES(1, 'session-2 donothing') ON CONFLICT DO NOTHING; <waiting ...>
|
|
step s3donothing: INSERT INTO foo VALUES(2, 'session-3 donothing'), (2, 'session-3 donothing2') ON CONFLICT DO NOTHING; <waiting ...>
|
|
step s1c: COMMIT;
|
|
step s2donothing: <... completed>
|
|
step s3donothing: <... completed>
|
|
ERROR: could not serialize access due to concurrent update
|
|
step s2c: COMMIT;
|
|
step s3c: COMMIT;
|
|
step s2select: SELECT * FROM foo ORDER BY a;
|
|
a|b
|
|
-+-----------------------------------
|
|
1|session-2 donothing
|
|
2|initial tuple -> moved by session-1
|
|
(2 rows)
|
|
|
|
|
|
starting permutation: s2begins s3begins s1u s3donothing s2donothing s1c s3c s2c s2select
|
|
step s2begins: BEGIN ISOLATION LEVEL SERIALIZABLE;
|
|
step s3begins: BEGIN ISOLATION LEVEL SERIALIZABLE;
|
|
step s1u: UPDATE foo SET a=2, b=b || ' -> moved by session-1' WHERE a=1;
|
|
step s3donothing: INSERT INTO foo VALUES(2, 'session-3 donothing'), (2, 'session-3 donothing2') ON CONFLICT DO NOTHING; <waiting ...>
|
|
step s2donothing: INSERT INTO foo VALUES(1, 'session-2 donothing') ON CONFLICT DO NOTHING; <waiting ...>
|
|
step s1c: COMMIT;
|
|
step s3donothing: <... completed>
|
|
ERROR: could not serialize access due to concurrent update
|
|
step s2donothing: <... completed>
|
|
step s3c: COMMIT;
|
|
step s2c: COMMIT;
|
|
step s2select: SELECT * FROM foo ORDER BY a;
|
|
a|b
|
|
-+-----------------------------------
|
|
1|session-2 donothing
|
|
2|initial tuple -> moved by session-1
|
|
(2 rows)
|
|
|