blob: 858156c3ffee1f9d0ba01428dcec84cf8f5f2772 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
# Exercise the case where a read-only serializable transaction has
# SXACT_FLAG_RO_SAFE set in a parallel query. This variant is like
# two copies of #2 running at the same time, and exercises the case
# where another transaction has the same xmin, and it is the oldest.
setup
{
CREATE TABLE foo AS SELECT generate_series(1, 10)::int a;
ALTER TABLE foo SET (parallel_workers = 2);
}
teardown
{
DROP TABLE foo;
}
session s1
setup { BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE; }
step s1r { SELECT * FROM foo; }
step s1c { COMMIT; }
session s2
setup {
BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE READ ONLY;
SET parallel_setup_cost = 0;
SET parallel_tuple_cost = 0;
}
step s2r1 { SELECT * FROM foo; }
step s2r2 { SELECT * FROM foo; }
step s2c { COMMIT; }
session s3
setup { BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE; }
step s3r { SELECT * FROM foo; }
step s3c { COMMIT; }
session s4
setup {
BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE READ ONLY;
SET parallel_setup_cost = 0;
SET parallel_tuple_cost = 0;
}
step s4r1 { SELECT * FROM foo; }
step s4r2 { SELECT * FROM foo; }
step s4c { COMMIT; }
permutation s1r s3r s2r1 s4r1 s1c s2r2 s3c s4r2 s4c s2c
|