BTW, there are a a couple of spec files floating around which perhaps we should consider getting into the source repo (in some cleaned up form). Noah published one, Andres shared a couple more with me, and I think I have two more. They can't be made to work in normal circumstances, because they depend on concurrent server activity. But perhaps we should add them anyway and perhaps list them in a separate schedule file, so that any developer interested in messing with this stuff has them readily available for testing.
-- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
setup { CREATE EXTENSION pageinspect; CREATE TABLE freezetab ( a int ) WITH OIDS; INSERT INTO freezetab VALUES (1); } teardown { DROP EXTENSION pageinspect; } session "s1" step "s1b" { BEGIN; } step "s1s" { SELECT txid_current(), * FROM freezetab FOR KEY SHARE; } step "s1c" { COMMIT; } step "s1e" { SELECT lp, t_xmin, t_xmax, to_hex(t_infomask) as mask, to_hex(t_infomask2) as mask2 FROM heap_page_items(get_raw_page('freezetab', 0)); } step "s1e2" { SELECT lp, t_xmax, members.* FROM heap_page_items(get_raw_page('freezetab', 0)), pg_get_multixact_members(t_xmax) members; } session "s2" step "s2b" { BEGIN; } step "s2s" { SELECT txid_current(), * FROM freezetab FOR KEY SHARE; } step "s2c" { COMMIT; } session "s3" step "s3b" { BEGIN; } step "s3u" { UPDATE freezetab SET a = 2; } step "s3c" { COMMIT; } session "s4" step "s4f" { VACUUM FREEZE freezetab; } permutation "s1b" "s1s" "s2b" "s2s" "s3b" "s3u" "s1c" "s1e" "s4f" "s1e" "s1e2" "s2c" "s3c"
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers