postgresql/src/test/isolation/specs/serializable-parallel-2.spec

35 lines
831 B
RPMSpec

# Exercise the case where a read-only serializable transaction has
# SXACT_FLAG_RO_SAFE set in a parallel query.
setup
{
CREATE TABLE foo AS SELECT generate_series(1, 100)::int a;
CREATE INDEX ON foo(a);
ALTER TABLE foo SET (parallel_workers = 2);
}
teardown
{
DROP TABLE foo;
}
session s1
setup { BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE; }
step s1r { SELECT COUNT(*) 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;
SET min_parallel_index_scan_size = 0;
SET parallel_leader_participation = off;
SET enable_seqscan = off;
}
step s2r1 { SELECT COUNT(*) FROM foo; }
step s2r2 { SELECT COUNT(*) FROM foo; }
step s2c { COMMIT; }
permutation s1r s2r1 s1c s2r2 s2c