Skip to content

Commit 6f12c59

Browse files
author
Espen Gulbrandsen
committed
Add generated functions file
1 parent e0439a4 commit 6f12c59

File tree

2 files changed

+525
-0
lines changed

2 files changed

+525
-0
lines changed
Lines changed: 245 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,245 @@
1+
-- This script is autogenerated from the tool DbTools. Do not edit manually.
2+
3+
-- deletesubscription.sql:
4+
CREATE OR REPLACE PROCEDURE events.deletesubscription(_id integer)
5+
LANGUAGE 'plpgsql'
6+
7+
AS $BODY$
8+
BEGIN
9+
DELETE
10+
FROM events.subscription s
11+
where s.id = _id;
12+
13+
END;
14+
$BODY$;
15+
16+
-- findsubscription.sql:
17+
CREATE OR REPLACE FUNCTION events.find_subscription(
18+
_resourcefilter character varying,
19+
_sourcefilter character varying,
20+
_subjectfilter character varying,
21+
_typefilter character varying,
22+
_consumer character varying,
23+
_endpointurl character varying)
24+
RETURNS TABLE(id bigint, resourcefilter character varying, sourcefilter character varying, subjectfilter character varying, typefilter character varying, consumer character varying, endpointurl character varying, createdby character varying, validated boolean, "time" timestamp with time zone)
25+
LANGUAGE 'plpgsql'
26+
AS $BODY$
27+
28+
BEGIN
29+
RETURN query
30+
SELECT
31+
s.id, s.resourcefilter, s.sourcefilter, s.subjectfilter, s.typefilter, s.consumer, s.endpointurl, s.createdby, s.validated, s."time"
32+
FROM
33+
events.subscription s
34+
WHERE
35+
s.resourcefilter = _resourcefilter
36+
AND ((_sourcefilter IS NULL AND s.sourcefilter IS NULL) OR s.sourcefilter = _sourcefilter)
37+
AND ((_subjectfilter IS NULL AND s.subjectfilter IS NULL) OR s.subjectfilter = _subjectfilter)
38+
AND ((_typefilter IS NULL AND s.typefilter IS NULL) OR s.typefilter = _typefilter)
39+
AND s.consumer = _consumer
40+
AND s.endpointurl = _endpointurl;
41+
END
42+
$BODY$;
43+
44+
-- getappevents.sql:
45+
CREATE OR REPLACE FUNCTION events.getappevents_v2(
46+
_subject character varying,
47+
_after character varying,
48+
_from timestamp with time zone,
49+
_to timestamp with time zone,
50+
_type text[],
51+
_source text[],
52+
_resource text,
53+
_size integer)
54+
RETURNS TABLE(cloudevents text)
55+
LANGUAGE 'plpgsql'
56+
COST 100
57+
VOLATILE PARALLEL UNSAFE
58+
ROWS 1000
59+
60+
AS $BODY$
61+
62+
DECLARE
63+
_sequenceno_first bigint;
64+
_sequenceno_last bigint;
65+
BEGIN
66+
67+
IF _after IS NOT NULL AND _after <> '' THEN
68+
SELECT
69+
case count(*)
70+
when 0
71+
then 0
72+
else
73+
(SELECT MIN(sequenceno)
74+
FROM events.events
75+
WHERE cloudevent->>'id' = _after)
76+
end
77+
INTO _sequenceno_first
78+
FROM events.events
79+
WHERE cloudevent->>'id' = _after;
80+
END IF;
81+
SELECT MAX(sequenceno) INTO _sequenceno_last FROM events.events WHERE registeredtime <= now() - interval '30 second';
82+
return query
83+
SELECT cast(cloudevent as text) as cloudevents
84+
FROM events.events
85+
WHERE (_subject IS NULL OR cloudevent->>'subject' = _subject)
86+
AND (_from IS NULL OR (cloudevent->>'time')::timestamptz >= _from)
87+
AND (_to IS NULL OR (cloudevent->>'time')::timestamptz <= _to)
88+
AND (_type IS NULL OR cloudevent->>'type' ILIKE ANY(_type))
89+
AND (_source IS NULL OR cloudevent->>'source' ILIKE ANY(_source))
90+
AND (_resource IS NULL OR cloudevent->>'resource' = _resource)
91+
AND (_after IS NULL OR _after = '' OR sequenceno > _sequenceno_first)
92+
AND (_sequenceno_last IS NULL OR sequenceno <= _sequenceno_last)
93+
ORDER BY sequenceno
94+
limit _size;
95+
END;
96+
$BODY$;
97+
98+
99+
-- getevents.sql:
100+
CREATE OR REPLACE FUNCTION events.getevents(
101+
_resource character varying,
102+
_subject character varying,
103+
_alternativesubject character varying,
104+
_after character varying,
105+
_type text[],
106+
_size integer)
107+
RETURNS TABLE(cloudevents text)
108+
LANGUAGE 'plpgsql'
109+
AS $BODY$
110+
111+
DECLARE
112+
_sequenceno bigint;
113+
BEGIN
114+
IF _after IS NOT NULL AND _after <> '' THEN
115+
SELECT
116+
case count(*)
117+
when 0
118+
then 0
119+
else
120+
(SELECT MIN(sequenceno) FROM events.events
121+
WHERE cloudevent->>'id' = _after)
122+
end
123+
INTO _sequenceno
124+
FROM events.events
125+
WHERE cloudevent->>'id' = _after;
126+
END IF;
127+
return query
128+
SELECT cast(cloudevent as text) as cloudevents
129+
FROM events.events
130+
WHERE cloudevent->>'resource' = _resource
131+
AND (_subject IS NULL OR cloudevent->>'subject' = _subject)
132+
AND (_alternativeSubject IS NULL OR cloudevent->>'alternativesubject' = _alternativesubject)
133+
AND (_type IS NULL OR cloudevent->>'type' LIKE ANY(_type) )
134+
AND registeredtime <= now() - interval '30 second'
135+
AND (_after IS NULL OR _after = '' OR sequenceno > _sequenceno)
136+
ORDER BY sequenceno
137+
limit _size;
138+
END;
139+
$BODY$;
140+
141+
-- getsubscription.sql:
142+
CREATE OR REPLACE FUNCTION events.getsubscription_v2(
143+
_id integer)
144+
RETURNS TABLE(id bigint, resourcefilter character varying, sourcefilter character varying, subjectfilter character varying, typefilter character varying, consumer character varying, endpointurl character varying, createdby character varying, validated boolean, "time" timestamp with time zone)
145+
LANGUAGE 'plpgsql'
146+
AS $BODY$
147+
148+
BEGIN
149+
return query
150+
SELECT s.id, s.resourcefilter, s.sourcefilter, s.subjectfilter, s.typefilter, s.consumer, s.endpointurl, s.createdby, s.validated, s."time"
151+
FROM events.subscription s
152+
where s.id = _id;
153+
154+
END;
155+
$BODY$;
156+
157+
-- getsubscriptions.sql:
158+
CREATE OR REPLACE FUNCTION events.getsubscriptions_v2(
159+
sourcehashset character varying[],
160+
subject character varying,
161+
type character varying)
162+
RETURNS TABLE(id bigint, resourcefilter character varying, sourcefilter character varying, subjectfilter character varying, typefilter character varying, consumer character varying, endpointurl character varying, createdby character varying, validated boolean, "time" timestamp with time zone)
163+
LANGUAGE 'plpgsql'
164+
AS $BODY$
165+
166+
BEGIN
167+
return query
168+
SELECT s.id, s.resourcefilter, s.sourcefilter, s.subjectfilter, s.typefilter, s.consumer, s.endpointurl, s.createdby, s.validated, s."time"
169+
FROM events.subscription s
170+
WHERE s.sourcefilterhash = ANY(sourcehashset)
171+
AND (s.subjectfilter is NULL OR s.subjectfilter = subject)
172+
AND (s.typefilter is NULL OR s.typefilter = type)
173+
AND s.validated;
174+
175+
END;
176+
$BODY$;
177+
178+
-- getsubscriptionsbyconsumer.sql:
179+
CREATE OR REPLACE FUNCTION events.getsubscriptionsbyconsumer_v2(
180+
_consumer character varying,
181+
_includeinvalid boolean)
182+
RETURNS TABLE(id bigint, resourcefilter character varying, sourcefilter character varying, subjectfilter character varying, typefilter character varying, consumer character varying, endpointurl character varying, createdby character varying, validated boolean, "time" timestamp with time zone)
183+
LANGUAGE 'plpgsql'
184+
AS $BODY$
185+
186+
187+
BEGIN
188+
return query
189+
SELECT s.id, s.resourcefilter, s.sourcefilter, s.subjectfilter, s.typefilter, s.consumer, s.endpointurl, s.createdby, s.validated, s."time"
190+
FROM events.subscription s
191+
WHERE s.consumer LIKE _consumer
192+
AND s.validated =
193+
CASE WHEN _includeInvalid THEN
194+
false or s.validated = true
195+
ELSE
196+
true
197+
END;
198+
199+
200+
END
201+
$BODY$;
202+
203+
-- insertsubscription.sql:
204+
CREATE OR REPLACE FUNCTION events.insert_subscription(
205+
resourcefilter character varying,
206+
sourcefilter character varying,
207+
subjectfilter character varying,
208+
typefilter character varying,
209+
consumer character varying,
210+
endpointurl character varying,
211+
createdby character varying,
212+
validated boolean,
213+
sourcefilterhash character varying)
214+
RETURNS SETOF events.subscription
215+
LANGUAGE 'plpgsql'
216+
AS $BODY$
217+
218+
DECLARE currentTime timestamptz;
219+
220+
BEGIN
221+
SET TIME ZONE UTC;
222+
currentTime := NOW();
223+
224+
RETURN QUERY
225+
INSERT INTO events.subscription(resourcefilter, sourcefilter, subjectfilter, typefilter, consumer, endpointurl, createdby, "time", validated, sourcefilterhash)
226+
VALUES ($1, $2, $3, $4, $5, $6, $7, currentTime, $8, $9) RETURNING *;
227+
228+
END
229+
$BODY$;
230+
231+
-- setvalidsubscription.sql:
232+
CREATE OR REPLACE PROCEDURE events.setvalidsubscription(_id integer)
233+
LANGUAGE 'plpgsql'
234+
235+
AS $BODY$
236+
BEGIN
237+
UPDATE
238+
events.subscription
239+
SET
240+
validated = true
241+
WHERE id = _id;
242+
END;
243+
$BODY$;
244+
245+

0 commit comments

Comments
 (0)