Skip to content

Commit 287023c

Browse files
author
Espen Gulbrandsen
committed
Add generated functions file
1 parent e0439a4 commit 287023c

File tree

1 file changed

+280
-0
lines changed

1 file changed

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

0 commit comments

Comments
 (0)