xlog-lock-updated.spec
text/plain
setup
{
CREATE TABLE foo (
key serial PRIMARY KEY,
value int
);
INSERT INTO foo SELECT value FROM generate_series(1, 226) AS value;
}
teardown
{
DROP TABLE foo;
}
session "s1"
step "s1b" { BEGIN ISOLATION LEVEL REPEATABLE READ; }
step "s1s" { SELECT * FROM foo LIMIT 0; } # obtain snapshot
step "s1l" { SELECT * FROM foo WHERE key = 1 FOR KEY SHARE; } # obtain lock
step "s1c" { COMMIT; }
session "s2"
step "s2b" { BEGIN; }
step "s2u" { UPDATE foo SET value = 2 WHERE key = 1; }
step "s2c" { COMMIT; }
session "s3"
step "s3ck" { CHECKPOINT; }
permutation "s1b" "s1s" "s2b" "s2u" "s3ck" "s1l" "s1c" "s2c"