29 lines
789 B
Python
29 lines
789 B
Python
# 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
|