]> granicus.if.org Git - postgresql/blob - src/test/isolation/specs/alter-table-3.spec
Add new test files for lock level patch
[postgresql] / src / test / isolation / specs / alter-table-3.spec
1 # ALTER TABLE - Enable and disable triggers with concurrent reads
2 #
3 # ENABLE/DISABLE TRIGGER uses ShareRowExclusiveLock so we mix writes with
4 # it to see what works or waits.
5
6 setup
7 {
8  CREATE TABLE a (i int PRIMARY KEY);
9  INSERT INTO a VALUES (0), (1), (2), (3);
10  CREATE FUNCTION f() RETURNS TRIGGER LANGUAGE plpgsql AS 'BEGIN RETURN NULL; END;';
11  CREATE TRIGGER t AFTER UPDATE ON a EXECUTE PROCEDURE f();
12 }
13
14 teardown
15 {
16  DROP TABLE a;
17  DROP FUNCTION f();
18 }
19
20 session "s1"
21 step "s1a" { BEGIN; }
22 step "s1b" { ALTER TABLE a DISABLE TRIGGER t; }
23 step "s1c" { ALTER TABLE a ENABLE TRIGGER t; }
24 step "s1d" { COMMIT; }
25
26 session "s2"
27 step "s2a" { BEGIN; }
28 step "s2b" { SELECT * FROM a WHERE i = 1 LIMIT 1 FOR UPDATE; }
29 step "s2c" { INSERT INTO a VALUES (0); }
30 step "s2d" { COMMIT; }