47 lines
1.2 KiB
RPMSpec
47 lines
1.2 KiB
RPMSpec
# When a tuple that has been updated is locked, the locking command
|
|
# should traverse the update chain; thus, a DELETE should not be able
|
|
# to proceed until the lock has been released.
|
|
|
|
setup
|
|
{
|
|
CREATE TABLE foo (
|
|
key int PRIMARY KEY,
|
|
value int
|
|
);
|
|
|
|
INSERT INTO foo VALUES (1, 1);
|
|
}
|
|
|
|
teardown
|
|
{
|
|
DROP TABLE foo;
|
|
}
|
|
|
|
session s1
|
|
setup { BEGIN; }
|
|
step s1s { SAVEPOINT f; }
|
|
step s1u { UPDATE foo SET key = 2; } # obtain KEY REVOKE
|
|
step s1r { ROLLBACK TO f; } # lose KEY REVOKE
|
|
step s1l { SELECT * FROM foo FOR KEY SHARE; }
|
|
step s1c { COMMIT; }
|
|
|
|
session s2
|
|
setup { BEGIN; }
|
|
step s2l { SELECT * FROM foo FOR KEY SHARE; }
|
|
step s2c { COMMIT; }
|
|
|
|
permutation s1s s1u s1r s1l s1c s2l s2c
|
|
permutation s1s s1u s1r s1l s2l s1c s2c
|
|
permutation s1s s1u s1r s1l s2l s2c s1c
|
|
permutation s1s s1u s1r s2l s1l s1c s2c
|
|
permutation s1s s1u s1r s2l s1l s2c s1c
|
|
permutation s1s s1u s1r s2l s2c s1l s1c
|
|
permutation s1s s1u s2l s1r s1l s1c s2c
|
|
permutation s1s s1u s2l s1r s1l s2c s1c
|
|
permutation s1s s1u s2l s1r s2c s1l s1c
|
|
permutation s1s s2l s1u s2c s1r s1l s1c
|
|
permutation s1s s2l s2c s1u s1r s1l s1c
|
|
permutation s2l s1s s1u s2c s1r s1l s1c
|
|
permutation s2l s1s s2c s1u s1r s1l s1c
|
|
permutation s2l s2c s1s s1u s1r s1l s1c
|