1Parsed test spec with 3 sessions
2
3starting permutation: listenc notify1 notify2 notify3 notifyf
4step listenc: LISTEN c1; LISTEN c2;
5step notify1: NOTIFY c1;
6notifier: NOTIFY "c1" with payload "" from notifier
7step notify2: NOTIFY c2, 'payload';
8notifier: NOTIFY "c2" with payload "payload" from notifier
9step notify3: NOTIFY c3, 'payload3';
10step notifyf: SELECT pg_notify('c2', NULL);
11pg_notify
12---------
13
14(1 row)
15
16notifier: NOTIFY "c2" with payload "" from notifier
17
18starting permutation: listenc notifyd1 notifyd2 notifys1
19step listenc: LISTEN c1; LISTEN c2;
20step notifyd1: NOTIFY c2, 'payload'; NOTIFY c1; NOTIFY "c2", 'payload';
21notifier: NOTIFY "c2" with payload "payload" from notifier
22notifier: NOTIFY "c1" with payload "" from notifier
23step notifyd2: NOTIFY c1; NOTIFY c1; NOTIFY c1, 'p1'; NOTIFY c1, 'p2';
24notifier: NOTIFY "c1" with payload "" from notifier
25notifier: NOTIFY "c1" with payload "p1" from notifier
26notifier: NOTIFY "c1" with payload "p2" from notifier
27step notifys1:
28	BEGIN;
29	NOTIFY c1, 'payload'; NOTIFY "c2", 'payload';
30	NOTIFY c1, 'payload'; NOTIFY "c2", 'payload';
31	SAVEPOINT s1;
32	NOTIFY c1, 'payload'; NOTIFY "c2", 'payload';
33	NOTIFY c1, 'payloads'; NOTIFY "c2", 'payloads';
34	NOTIFY c1, 'payload'; NOTIFY "c2", 'payload';
35	NOTIFY c1, 'payloads'; NOTIFY "c2", 'payloads';
36	RELEASE SAVEPOINT s1;
37	SAVEPOINT s2;
38	NOTIFY c1, 'rpayload'; NOTIFY "c2", 'rpayload';
39	NOTIFY c1, 'rpayloads'; NOTIFY "c2", 'rpayloads';
40	NOTIFY c1, 'rpayload'; NOTIFY "c2", 'rpayload';
41	NOTIFY c1, 'rpayloads'; NOTIFY "c2", 'rpayloads';
42	ROLLBACK TO SAVEPOINT s2;
43	COMMIT;
44
45notifier: NOTIFY "c1" with payload "payload" from notifier
46notifier: NOTIFY "c2" with payload "payload" from notifier
47notifier: NOTIFY "c1" with payload "payloads" from notifier
48notifier: NOTIFY "c2" with payload "payloads" from notifier
49
50starting permutation: llisten notify1 notify2 notify3 notifyf lcheck
51step llisten: LISTEN c1; LISTEN c2;
52step notify1: NOTIFY c1;
53step notify2: NOTIFY c2, 'payload';
54step notify3: NOTIFY c3, 'payload3';
55step notifyf: SELECT pg_notify('c2', NULL);
56pg_notify
57---------
58
59(1 row)
60
61step lcheck: SELECT 1 AS x;
62x
63-
641
65(1 row)
66
67listener: NOTIFY "c1" with payload "" from notifier
68listener: NOTIFY "c2" with payload "payload" from notifier
69listener: NOTIFY "c2" with payload "" from notifier
70
71starting permutation: listenc llisten notify1 notify2 notify3 notifyf lcheck
72step listenc: LISTEN c1; LISTEN c2;
73step llisten: LISTEN c1; LISTEN c2;
74step notify1: NOTIFY c1;
75notifier: NOTIFY "c1" with payload "" from notifier
76step notify2: NOTIFY c2, 'payload';
77notifier: NOTIFY "c2" with payload "payload" from notifier
78step notify3: NOTIFY c3, 'payload3';
79step notifyf: SELECT pg_notify('c2', NULL);
80pg_notify
81---------
82
83(1 row)
84
85notifier: NOTIFY "c2" with payload "" from notifier
86step lcheck: SELECT 1 AS x;
87x
88-
891
90(1 row)
91
92listener: NOTIFY "c1" with payload "" from notifier
93listener: NOTIFY "c2" with payload "payload" from notifier
94listener: NOTIFY "c2" with payload "" from notifier
95
96starting permutation: l2listen l2begin notify1 lbegins llisten lcommit l2commit l2stop
97step l2listen: LISTEN c1;
98step l2begin: BEGIN;
99step notify1: NOTIFY c1;
100step lbegins: BEGIN ISOLATION LEVEL SERIALIZABLE;
101step llisten: LISTEN c1; LISTEN c2;
102step lcommit: COMMIT;
103step l2commit: COMMIT;
104listener2: NOTIFY "c1" with payload "" from notifier
105step l2stop: UNLISTEN *;
106
107starting permutation: llisten lbegin usage bignotify usage
108step llisten: LISTEN c1; LISTEN c2;
109step lbegin: BEGIN;
110step usage: SELECT pg_notification_queue_usage() > 0 AS nonzero;
111nonzero
112-------
113f
114(1 row)
115
116step bignotify: SELECT count(pg_notify('c1', s::text)) FROM generate_series(1, 1000) s;
117count
118-----
119 1000
120(1 row)
121
122step usage: SELECT pg_notification_queue_usage() > 0 AS nonzero;
123nonzero
124-------
125t
126(1 row)
127
128