|
| 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