34 lines
560 B
Python
34 lines
560 B
Python
# Test NOWAIT with tuple locks.
|
|
|
|
setup
|
|
{
|
|
CREATE TABLE foo (
|
|
id int PRIMARY KEY,
|
|
data text NOT NULL
|
|
);
|
|
INSERT INTO foo VALUES (1, 'x');
|
|
}
|
|
|
|
teardown
|
|
{
|
|
DROP TABLE foo;
|
|
}
|
|
|
|
session s1
|
|
setup { BEGIN; }
|
|
step s1a { SELECT * FROM foo FOR UPDATE; }
|
|
step s1b { COMMIT; }
|
|
|
|
session s2
|
|
setup { BEGIN; }
|
|
step s2a { SELECT * FROM foo FOR UPDATE; }
|
|
step s2b { COMMIT; }
|
|
|
|
session s3
|
|
setup { BEGIN; }
|
|
step s3a { SELECT * FROM foo FOR UPDATE NOWAIT; }
|
|
step s3b { COMMIT; }
|
|
|
|
# s3 skips to second record due to tuple lock held by s2
|
|
permutation s1a s2a s3a s1b s2b s3b
|