mirror of
https://github.com/postgres/postgres.git
synced 2026-04-20 22:00:13 -04:00
Previously, isolationtester displayed SQL query results using some
ad-hoc code that clearly hadn't had much effort expended on it.
Field values longer than 14 characters weren't separated from
the next field, and usually caused misalignment of the columns
too. Also there was no visual separation of a query's result
from subsequent isolationtester output. This made test result
files confusing and hard to read.
To improve matters, let's use libpq's PQprint() function. Although
that's long since unused by psql, it's still plenty good enough
for the purpose here.
Like 741d7f104, back-patch to all supported branches, so that this
isn't a stumbling block for back-patching isolation test changes.
Discussion: https://postgr.es/m/582362.1623798221@sss.pgh.pa.us
839 lines
14 KiB
Text
839 lines
14 KiB
Text
Parsed test spec with 2 sessions
|
|
|
|
starting permutation: rx1 wy1 c1 rx2 ry2 wx2 c2
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c1: COMMIT;
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
1
|
|
(1 row)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: rx1 wy1 rx2 c1 ry2 wx2 c2
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step c1: COMMIT;
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: rx1 wy1 rx2 ry2 c1 wx2 c2
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step c1: COMMIT;
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: rx1 wy1 rx2 ry2 wx2 c1 c2
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx1 wy1 rx2 ry2 wx2 c2 c1
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx1 rx2 wy1 c1 ry2 wx2 c2
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c1: COMMIT;
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: rx1 rx2 wy1 ry2 c1 wx2 c2
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step c1: COMMIT;
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: rx1 rx2 wy1 ry2 wx2 c1 c2
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx1 rx2 wy1 ry2 wx2 c2 c1
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx1 rx2 ry2 wy1 c1 wx2 c2
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c1: COMMIT;
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: rx1 rx2 ry2 wy1 wx2 c1 c2
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx1 rx2 ry2 wy1 wx2 c2 c1
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx1 rx2 ry2 wx2 wy1 c1 c2
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx1 rx2 ry2 wx2 wy1 c2 c1
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx1 rx2 ry2 wx2 c2 wy1 c1
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c2: COMMIT;
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c1: COMMIT;
|
|
|
|
starting permutation: rx2 rx1 wy1 c1 ry2 wx2 c2
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c1: COMMIT;
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: rx2 rx1 wy1 ry2 c1 wx2 c2
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step c1: COMMIT;
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: rx2 rx1 wy1 ry2 wx2 c1 c2
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx2 rx1 wy1 ry2 wx2 c2 c1
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx2 rx1 ry2 wy1 c1 wx2 c2
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c1: COMMIT;
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: rx2 rx1 ry2 wy1 wx2 c1 c2
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx2 rx1 ry2 wy1 wx2 c2 c1
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx2 rx1 ry2 wx2 wy1 c1 c2
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx2 rx1 ry2 wx2 wy1 c2 c1
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx2 rx1 ry2 wx2 c2 wy1 c1
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c2: COMMIT;
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c1: COMMIT;
|
|
|
|
starting permutation: rx2 ry2 rx1 wy1 c1 wx2 c2
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c1: COMMIT;
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c2: COMMIT;
|
|
|
|
starting permutation: rx2 ry2 rx1 wy1 wx2 c1 c2
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx2 ry2 rx1 wy1 wx2 c2 c1
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx2 ry2 rx1 wx2 wy1 c1 c2
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx2 ry2 rx1 wx2 wy1 c2 c1
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx2 ry2 rx1 wx2 c2 wy1 c1
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c2: COMMIT;
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c1: COMMIT;
|
|
|
|
starting permutation: rx2 ry2 wx2 rx1 wy1 c1 c2
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c1: COMMIT;
|
|
step c2: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx2 ry2 wx2 rx1 wy1 c2 c1
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c2: COMMIT;
|
|
step c1: COMMIT;
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
|
|
starting permutation: rx2 ry2 wx2 rx1 c2 wy1 c1
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step c2: COMMIT;
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
ERROR: could not serialize access due to read/write dependencies among transactions
|
|
step c1: COMMIT;
|
|
|
|
starting permutation: rx2 ry2 wx2 c2 rx1 wy1 c1
|
|
step rx2: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
1
|
|
(1 row)
|
|
|
|
step ry2: SELECT a_id FROM b WHERE a_id = 1;
|
|
a_id
|
|
----
|
|
(0 rows)
|
|
|
|
step wx2: DELETE FROM a WHERE i = 1;
|
|
step c2: COMMIT;
|
|
step rx1: SELECT i FROM a WHERE i = 1;
|
|
i
|
|
-
|
|
(0 rows)
|
|
|
|
step wy1: INSERT INTO b VALUES (1);
|
|
step c1: COMMIT;
|