summaryrefslogtreecommitdiffstats
path: root/contrib/tcn/specs/tcn.spec
blob: fb9e7305fca84aa7b3130ec22f47d0bf2220173b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# Tests for contrib/tcn

# These tests use only self-notifies within a single session,
# which are convenient because they minimize timing concerns.
# Whether the NOTIFY mechanism works across sessions is not
# really tcn's problem.

setup
{
  CREATE TABLE mytable (key int PRIMARY KEY, value text);
  CREATE TRIGGER tcntrig AFTER INSERT OR UPDATE OR DELETE ON mytable
    FOR EACH ROW EXECUTE FUNCTION triggered_change_notification(mychannel);
}

teardown
{
  DROP TABLE mytable;
}

session s1
step listen	{ LISTEN mychannel; }
step insert	{ INSERT INTO mytable VALUES(1, 'one'); }
step insert2	{ INSERT INTO mytable VALUES(2, 'two'); }
step update	{ UPDATE mytable SET value = 'foo' WHERE key = 2; }
step delete	{ DELETE FROM mytable; }


permutation listen insert insert2 update delete