Merge pull request #5106 from solgenomics/topic/fix_greenhouse_trial_plant_allocation
[sgn.git] / db / 00186 / AddAuditTables.pm
blob5aeab891754d679a3e80ff8abe546c6ab5c08c5c
1 #!/usr/bin/env perl
3 =head1 NAME
5 AddAuditTables.pm
7 =head1 SYNOPSIS
9 mx-run AddAuditTables.pm [options] -H hostname -D dbname -u username [-F]
11 this is a subclass of L<CXGN::Metadata::Dbpatch>
12 see the perldoc of parent class for more details.
14 =head1 DESCRIPTION
16 This patch adds audit tables
17 This subclass uses L<Moose>. The parent class uses L<MooseX::Runnable>
19 =head1 AUTHOR
21 Adrian Powell <afp43@cornell.edu>
23 =head1 COPYRIGHT & LICENSE
25 Copyright 2010 Boyce Thompson Institute for Plant Research
27 This program is free software; you can redistribute it and/or modify
28 it under the same terms as Perl itself.
30 =cut
33 package AddAuditTables;
35 use Moose;
36 use Bio::Chado::Schema;
37 use SGN::Model::Cvterm;
39 extends 'CXGN::Metadata::Dbpatch';
41 has '+description' => ( default => <<'' );
42 This patch adds audit tables
44 has '+prereq' => (
45 default => sub {
46 [],
51 sub patch {
52 my $self=shift;
54 $self->dbh->do(<<EOSQL);
55 --do your SQL here
57 --CREATE TABLE public.logged_in_user (sp_person_id INT);
58 --INSERT INTO public.logged_in_user (sp_person_id) VALUES (57);
59 --ALTER TABLE public.logged_in_user OWNER TO web_usr;
61 CREATE SCHEMA IF NOT EXISTS audit;
62 ALTER SCHEMA audit OWNER TO web_usr;
64 CREATE TABLE audit.cv_audit(
65 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
66 operation VARCHAR(10) NOT NULL,
67 username TEXT NOT NULL DEFAULT "current_user"(),
68 logged_in_user INT,
69 before JSONB,
70 after JSONB,
71 transactioncode VARCHAR(40),
72 cv_audit_id SERIAL PRIMARY KEY,
73 is_undo BOOLEAN
76 ALTER TABLE audit.cv_audit OWNER TO web_usr;
78 CREATE OR REPLACE FUNCTION public.cv_audit_trig()
79 RETURNS trigger
80 LANGUAGE plpgsql
81 AS \$function\$
82 BEGIN
84 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
85 IF TG_OP = 'INSERT'
86 THEN
87 INSERT INTO audit.cv_audit (logged_in_user, operation, after, transactioncode, is_undo)
88 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
89 RETURN NEW;
91 ELSIF TG_OP = 'UPDATE'
92 THEN
93 IF NEW != OLD THEN
94 INSERT INTO audit.cv_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
95 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
96 END IF;
97 RETURN NEW;
99 ELSIF TG_OP = 'DELETE'
100 THEN
101 INSERT INTO audit.cv_audit (logged_in_user, operation, before, transactioncode, is_undo)
102 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
103 RETURN OLD;
104 END IF;
105 END;
106 \$function\$ ;
108 CREATE TRIGGER cv_audit_trig
109 BEFORE INSERT OR UPDATE OR DELETE
110 ON public.cv
111 FOR EACH ROW
112 EXECUTE PROCEDURE public.cv_audit_trig();
114 CREATE TABLE audit.cvprop_audit(
115 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
116 operation VARCHAR(10) NOT NULL,
117 username TEXT NOT NULL DEFAULT "current_user"(),
118 logged_in_user INT,
119 before JSONB,
120 after JSONB,
121 transactioncode VARCHAR(40),
122 cvprop_audit_id SERIAL PRIMARY KEY,
123 is_undo BOOLEAN
126 ALTER TABLE audit.cvprop_audit OWNER TO web_usr;
128 CREATE OR REPLACE FUNCTION public.cvprop_audit_trig()
129 RETURNS trigger
130 LANGUAGE plpgsql
131 AS \$function\$
132 BEGIN
134 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
136 IF TG_OP = 'INSERT'
137 THEN
138 INSERT INTO audit.cvprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
139 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
140 RETURN NEW;
142 ELSIF TG_OP = 'UPDATE'
143 THEN
144 IF NEW != OLD THEN
145 INSERT INTO audit.cvprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
146 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
147 END IF;
148 RETURN NEW;
150 ELSIF TG_OP = 'DELETE'
151 THEN
152 INSERT INTO audit.cvprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
153 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
154 RETURN OLD;
155 END IF;
156 END;
157 \$function\$ ;
159 CREATE TRIGGER cvprop_audit_trig
160 BEFORE INSERT OR UPDATE OR DELETE
161 ON public.cvprop
162 FOR EACH ROW
163 EXECUTE PROCEDURE public.cvprop_audit_trig();
165 CREATE TABLE audit.cvterm_audit(
166 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
167 operation VARCHAR(10) NOT NULL,
168 username TEXT NOT NULL DEFAULT "current_user"(),
169 logged_in_user INT,
170 before JSONB,
171 after JSONB,
172 transactioncode VARCHAR(40),
173 cvterm_audit_id SERIAL PRIMARY KEY,
174 is_undo BOOLEAN
177 ALTER TABLE audit.cvterm_audit OWNER TO web_usr;
179 CREATE OR REPLACE FUNCTION public.cvterm_audit_trig()
180 RETURNS trigger
181 LANGUAGE plpgsql
182 AS \$function\$
183 BEGIN
185 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
187 IF TG_OP = 'INSERT'
188 THEN
189 INSERT INTO audit.cvterm_audit (logged_in_user, operation, after, transactioncode, is_undo)
190 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
191 RETURN NEW;
193 ELSIF TG_OP = 'UPDATE'
194 THEN
195 IF NEW != OLD THEN
196 INSERT INTO audit.cvterm_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
197 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
198 END IF;
199 RETURN NEW;
201 ELSIF TG_OP = 'DELETE'
202 THEN
203 INSERT INTO audit.cvterm_audit (logged_in_user, operation, before, transactioncode, is_undo)
204 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
205 RETURN OLD;
206 END IF;
207 END;
208 \$function\$ ;
210 CREATE TRIGGER cvterm_audit_trig
211 BEFORE INSERT OR UPDATE OR DELETE
212 ON public.cvterm
213 FOR EACH ROW
214 EXECUTE PROCEDURE public.cvterm_audit_trig();
216 CREATE TABLE audit.cvterm_dbxref_audit(
217 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
218 operation VARCHAR(10) NOT NULL,
219 username TEXT NOT NULL DEFAULT "current_user"(),
220 logged_in_user INT,
221 before JSONB,
222 after JSONB,
223 transactioncode VARCHAR(40),
224 cvterm_dbxref_audit_id SERIAL PRIMARY KEY,
225 is_undo BOOLEAN
228 ALTER TABLE audit.cvterm_dbxref_audit OWNER TO web_usr;
230 CREATE OR REPLACE FUNCTION public.cvterm_dbxref_audit_trig()
231 RETURNS trigger
232 LANGUAGE plpgsql
233 AS \$function\$
234 BEGIN
236 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
238 IF TG_OP = 'INSERT'
239 THEN
240 INSERT INTO audit.cvterm_dbxref_audit (logged_in_user, operation, after, transactioncode, is_undo)
241 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
242 RETURN NEW;
244 ELSIF TG_OP = 'UPDATE'
245 THEN
246 IF NEW != OLD THEN
247 INSERT INTO audit.cvterm_dbxref_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
248 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
249 END IF;
250 RETURN NEW;
252 ELSIF TG_OP = 'DELETE'
253 THEN
254 INSERT INTO audit.cvterm_dbxref_audit (logged_in_user, operation, before, transactioncode, is_undo)
255 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
256 RETURN OLD;
257 END IF;
258 END;
259 \$function\$ ;
261 CREATE TRIGGER cvterm_dbxref_audit_trig
262 BEFORE INSERT OR UPDATE OR DELETE
263 ON public.cvterm_dbxref
264 FOR EACH ROW
265 EXECUTE PROCEDURE public.cvterm_dbxref_audit_trig();
267 CREATE TABLE audit.cvterm_relationship_audit(
268 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
269 operation VARCHAR(10) NOT NULL,
270 username TEXT NOT NULL DEFAULT "current_user"(),
271 logged_in_user INT,
272 before JSONB,
273 after JSONB,
274 transactioncode VARCHAR(40),
275 cvterm_relationship_audit_id SERIAL PRIMARY KEY,
276 is_undo BOOLEAN
279 ALTER TABLE audit.cvterm_relationship_audit OWNER TO web_usr;
281 CREATE OR REPLACE FUNCTION public.cvterm_relationship_audit_trig()
282 RETURNS trigger
283 LANGUAGE plpgsql
284 AS \$function\$
285 BEGIN
287 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
289 IF TG_OP = 'INSERT'
290 THEN
291 INSERT INTO audit.cvterm_relationship_audit (logged_in_user, operation, after, transactioncode, is_undo)
292 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
293 RETURN NEW;
295 ELSIF TG_OP = 'UPDATE'
296 THEN
297 IF NEW != OLD THEN
298 INSERT INTO audit.cvterm_relationship_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
299 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
300 END IF;
301 RETURN NEW;
303 ELSIF TG_OP = 'DELETE'
304 THEN
305 INSERT INTO audit.cvterm_relationship_audit (logged_in_user, operation, before, transactioncode, is_undo)
306 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
307 RETURN OLD;
308 END IF;
309 END;
310 \$function\$ ;
312 CREATE TRIGGER cvterm_relationship_audit_trig
313 BEFORE INSERT OR UPDATE OR DELETE
314 ON public.cvterm_relationship
315 FOR EACH ROW
316 EXECUTE PROCEDURE public.cvterm_relationship_audit_trig();
318 CREATE TABLE audit.cvtermpath_audit(
319 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
320 operation VARCHAR(10) NOT NULL,
321 username TEXT NOT NULL DEFAULT "current_user"(),
322 logged_in_user INT,
323 before JSONB,
324 after JSONB,
325 transactioncode VARCHAR(40),
326 cvtermpath_audit_id SERIAL PRIMARY KEY,
327 is_undo BOOLEAN
330 ALTER TABLE audit.cvtermpath_audit OWNER TO web_usr;
332 CREATE OR REPLACE FUNCTION public.cvtermpath_audit_trig()
333 RETURNS trigger
334 LANGUAGE plpgsql
335 AS \$function\$
336 BEGIN
338 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
340 IF TG_OP = 'INSERT'
341 THEN
342 INSERT INTO audit.cvtermpath_audit (logged_in_user, operation, after, transactioncode, is_undo)
343 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
344 RETURN NEW;
346 ELSIF TG_OP = 'UPDATE'
347 THEN
348 IF NEW != OLD THEN
349 INSERT INTO audit.cvtermpath_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
350 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
351 END IF;
352 RETURN NEW;
354 ELSIF TG_OP = 'DELETE'
355 THEN
356 INSERT INTO audit.cvtermpath_audit (logged_in_user, operation, before, transactioncode, is_undo)
357 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
358 RETURN OLD;
359 END IF;
360 END;
361 \$function\$ ;
363 CREATE TRIGGER cvtermpath_audit_trig
364 BEFORE INSERT OR UPDATE OR DELETE
365 ON public.cvtermpath
366 FOR EACH ROW
367 EXECUTE PROCEDURE public.cvtermpath_audit_trig();
369 CREATE TABLE audit.cvtermprop_audit(
370 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
371 operation VARCHAR(10) NOT NULL,
372 username TEXT NOT NULL DEFAULT "current_user"(),
373 logged_in_user INT,
374 before JSONB,
375 after JSONB,
376 transactioncode VARCHAR(40),
377 cvtermprop_audit_id SERIAL PRIMARY KEY,
378 is_undo BOOLEAN
381 ALTER TABLE audit.cvtermprop_audit OWNER TO web_usr;
383 CREATE OR REPLACE FUNCTION public.cvtermprop_audit_trig()
384 RETURNS trigger
385 LANGUAGE plpgsql
386 AS \$function\$
387 BEGIN
389 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
391 IF TG_OP = 'INSERT'
392 THEN
393 INSERT INTO audit.cvtermprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
394 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
395 RETURN NEW;
397 ELSIF TG_OP = 'UPDATE'
398 THEN
399 IF NEW != OLD THEN
400 INSERT INTO audit.cvtermprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
401 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
402 END IF;
403 RETURN NEW;
405 ELSIF TG_OP = 'DELETE'
406 THEN
407 INSERT INTO audit.cvtermprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
408 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
409 RETURN OLD;
410 END IF;
411 END;
412 \$function\$ ;
414 CREATE TRIGGER cvtermprop_audit_trig
415 BEFORE INSERT OR UPDATE OR DELETE
416 ON public.cvtermprop
417 FOR EACH ROW
418 EXECUTE PROCEDURE public.cvtermprop_audit_trig();
420 CREATE TABLE audit.cvtermsynonym_audit(
421 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
422 operation VARCHAR(10) NOT NULL,
423 username TEXT NOT NULL DEFAULT "current_user"(),
424 logged_in_user INT,
425 before JSONB,
426 after JSONB,
427 transactioncode VARCHAR(40),
428 cvtermsynonym_audit_id SERIAL PRIMARY KEY,
429 is_undo BOOLEAN
432 ALTER TABLE audit.cvtermsynonym_audit OWNER TO web_usr;
434 CREATE OR REPLACE FUNCTION public.cvtermsynonym_audit_trig()
435 RETURNS trigger
436 LANGUAGE plpgsql
437 AS \$function\$
438 BEGIN
440 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
442 IF TG_OP = 'INSERT'
443 THEN
444 INSERT INTO audit.cvtermsynonym_audit (logged_in_user, operation, after, transactioncode, is_undo)
445 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
446 RETURN NEW;
448 ELSIF TG_OP = 'UPDATE'
449 THEN
450 IF NEW != OLD THEN
451 INSERT INTO audit.cvtermsynonym_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
452 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
453 END IF;
454 RETURN NEW;
456 ELSIF TG_OP = 'DELETE'
457 THEN
458 INSERT INTO audit.cvtermsynonym_audit (logged_in_user, operation, before, transactioncode, is_undo)
459 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
460 RETURN OLD;
461 END IF;
462 END;
463 \$function\$ ;
465 CREATE TRIGGER cvtermsynonym_audit_trig
466 BEFORE INSERT OR UPDATE OR DELETE
467 ON public.cvtermsynonym
468 FOR EACH ROW
469 EXECUTE PROCEDURE public.cvtermsynonym_audit_trig();
471 CREATE TABLE audit.db_audit(
472 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
473 operation VARCHAR(10) NOT NULL,
474 username TEXT NOT NULL DEFAULT "current_user"(),
475 logged_in_user INT,
476 before JSONB,
477 after JSONB,
478 transactioncode VARCHAR(40),
479 db_audit_id SERIAL PRIMARY KEY,
480 is_undo BOOLEAN
483 ALTER TABLE audit.db_audit OWNER TO web_usr;
485 CREATE OR REPLACE FUNCTION public.db_audit_trig()
486 RETURNS trigger
487 LANGUAGE plpgsql
488 AS \$function\$
489 BEGIN
491 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
493 IF TG_OP = 'INSERT'
494 THEN
495 INSERT INTO audit.db_audit (logged_in_user, operation, after, transactioncode, is_undo)
496 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
497 RETURN NEW;
499 ELSIF TG_OP = 'UPDATE'
500 THEN
501 IF NEW != OLD THEN
502 INSERT INTO audit.db_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
503 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
504 END IF;
505 RETURN NEW;
507 ELSIF TG_OP = 'DELETE'
508 THEN
509 INSERT INTO audit.db_audit (logged_in_user, operation, before, transactioncode, is_undo)
510 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
511 RETURN OLD;
512 END IF;
513 END;
514 \$function\$ ;
516 CREATE TRIGGER db_audit_trig
517 BEFORE INSERT OR UPDATE OR DELETE
518 ON public.db
519 FOR EACH ROW
520 EXECUTE PROCEDURE public.db_audit_trig();
522 CREATE TABLE audit.dbxref_audit(
523 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
524 operation VARCHAR(10) NOT NULL,
525 username TEXT NOT NULL DEFAULT "current_user"(),
526 logged_in_user INT,
527 before JSONB,
528 after JSONB,
529 transactioncode VARCHAR(40),
530 dbxref_audit_id SERIAL PRIMARY KEY,
531 is_undo BOOLEAN
534 ALTER TABLE audit.dbxref_audit OWNER TO web_usr;
536 CREATE OR REPLACE FUNCTION public.dbxref_audit_trig()
537 RETURNS trigger
538 LANGUAGE plpgsql
539 AS \$function\$
540 BEGIN
542 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
544 IF TG_OP = 'INSERT'
545 THEN
546 INSERT INTO audit.dbxref_audit (logged_in_user, operation, after, transactioncode, is_undo)
547 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
548 RETURN NEW;
550 ELSIF TG_OP = 'UPDATE'
551 THEN
552 IF NEW != OLD THEN
553 INSERT INTO audit.dbxref_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
554 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
555 END IF;
556 RETURN NEW;
558 ELSIF TG_OP = 'DELETE'
559 THEN
560 INSERT INTO audit.dbxref_audit (logged_in_user, operation, before, transactioncode, is_undo)
561 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
562 RETURN OLD;
563 END IF;
564 END;
565 \$function\$ ;
567 CREATE TRIGGER dbxref_audit_trig
568 BEFORE INSERT OR UPDATE OR DELETE
569 ON public.dbxref
570 FOR EACH ROW
571 EXECUTE PROCEDURE public.dbxref_audit_trig();
573 CREATE TABLE audit.dbxrefprop_audit(
574 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
575 operation VARCHAR(10) NOT NULL,
576 username TEXT NOT NULL DEFAULT "current_user"(),
577 logged_in_user INT,
578 before JSONB,
579 after JSONB,
580 transactioncode VARCHAR(40),
581 dbxrefprop_audit_id SERIAL PRIMARY KEY,
582 is_undo BOOLEAN
585 ALTER TABLE audit.dbxrefprop_audit OWNER TO web_usr;
587 CREATE OR REPLACE FUNCTION public.dbxrefprop_audit_trig()
588 RETURNS trigger
589 LANGUAGE plpgsql
590 AS \$function\$
591 BEGIN
593 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
595 IF TG_OP = 'INSERT'
596 THEN
597 INSERT INTO audit.dbxrefprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
598 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
599 RETURN NEW;
601 ELSIF TG_OP = 'UPDATE'
602 THEN
603 IF NEW != OLD THEN
604 INSERT INTO audit.dbxrefprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
605 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
606 END IF;
607 RETURN NEW;
609 ELSIF TG_OP = 'DELETE'
610 THEN
611 INSERT INTO audit.dbxrefprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
612 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
613 RETURN OLD;
614 END IF;
615 END;
616 \$function\$ ;
618 CREATE TRIGGER dbxrefprop_audit_trig
619 BEFORE INSERT OR UPDATE OR DELETE
620 ON public.dbxrefprop
621 FOR EACH ROW
622 EXECUTE PROCEDURE public.dbxrefprop_audit_trig();
624 CREATE TABLE audit.genotype_audit(
625 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
626 operation VARCHAR(10) NOT NULL,
627 username TEXT NOT NULL DEFAULT "current_user"(),
628 logged_in_user INT,
629 before JSONB,
630 after JSONB,
631 transactioncode VARCHAR(40),
632 genotype_audit_id SERIAL PRIMARY KEY,
633 is_undo BOOLEAN
636 ALTER TABLE audit.genotype_audit OWNER TO web_usr;
638 CREATE OR REPLACE FUNCTION public.genotype_audit_trig()
639 RETURNS trigger
640 LANGUAGE plpgsql
641 AS \$function\$
642 BEGIN
644 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
646 IF TG_OP = 'INSERT'
647 THEN
648 INSERT INTO audit.genotype_audit (logged_in_user, operation, after, transactioncode, is_undo)
649 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
650 RETURN NEW;
652 ELSIF TG_OP = 'UPDATE'
653 THEN
654 IF NEW != OLD THEN
655 INSERT INTO audit.genotype_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
656 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
657 END IF;
658 RETURN NEW;
660 ELSIF TG_OP = 'DELETE'
661 THEN
662 INSERT INTO audit.genotype_audit (logged_in_user, operation, before, transactioncode, is_undo)
663 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
664 RETURN OLD;
665 END IF;
666 END;
667 \$function\$ ;
669 CREATE TRIGGER genotype_audit_trig
670 BEFORE INSERT OR UPDATE OR DELETE
671 ON public.genotype
672 FOR EACH ROW
673 EXECUTE PROCEDURE public.genotype_audit_trig();
675 CREATE TABLE audit.nd_experiment_audit(
676 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
677 operation VARCHAR(10) NOT NULL,
678 username TEXT NOT NULL DEFAULT "current_user"(),
679 logged_in_user INT,
680 before JSONB,
681 after JSONB,
682 transactioncode VARCHAR(40),
683 nd_experiment_audit_id SERIAL PRIMARY KEY,
684 is_undo BOOLEAN
687 ALTER TABLE audit.nd_experiment_audit OWNER TO web_usr;
689 CREATE OR REPLACE FUNCTION public.nd_experiment_audit_trig()
690 RETURNS trigger
691 LANGUAGE plpgsql
692 AS \$function\$
693 BEGIN
695 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
697 IF TG_OP = 'INSERT'
698 THEN
699 INSERT INTO audit.nd_experiment_audit (logged_in_user, operation, after, transactioncode, is_undo)
700 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
701 RETURN NEW;
703 ELSIF TG_OP = 'UPDATE'
704 THEN
705 IF NEW != OLD THEN
706 INSERT INTO audit.nd_experiment_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
707 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
708 END IF;
709 RETURN NEW;
711 ELSIF TG_OP = 'DELETE'
712 THEN
713 INSERT INTO audit.nd_experiment_audit (logged_in_user, operation, before, transactioncode, is_undo)
714 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
715 RETURN OLD;
716 END IF;
717 END;
718 \$function\$ ;
720 CREATE TRIGGER nd_experiment_audit_trig
721 BEFORE INSERT OR UPDATE OR DELETE
722 ON public.nd_experiment
723 FOR EACH ROW
724 EXECUTE PROCEDURE public.nd_experiment_audit_trig();
726 CREATE TABLE audit.nd_experiment_contact_audit(
727 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
728 operation VARCHAR(10) NOT NULL,
729 username TEXT NOT NULL DEFAULT "current_user"(),
730 logged_in_user INT,
731 before JSONB,
732 after JSONB,
733 transactioncode VARCHAR(40),
734 nd_experiment_contact_audit_id SERIAL PRIMARY KEY,
735 is_undo BOOLEAN
738 ALTER TABLE audit.nd_experiment_contact_audit OWNER TO web_usr;
740 CREATE OR REPLACE FUNCTION public.nd_experiment_contact_audit_trig()
741 RETURNS trigger
742 LANGUAGE plpgsql
743 AS \$function\$
744 BEGIN
746 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
748 IF TG_OP = 'INSERT'
749 THEN
750 INSERT INTO audit.nd_experiment_contact_audit (logged_in_user, operation, after, transactioncode, is_undo)
751 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
752 RETURN NEW;
754 ELSIF TG_OP = 'UPDATE'
755 THEN
756 IF NEW != OLD THEN
757 INSERT INTO audit.nd_experiment_contact_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
758 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
759 END IF;
760 RETURN NEW;
762 ELSIF TG_OP = 'DELETE'
763 THEN
764 INSERT INTO audit.nd_experiment_contact_audit (logged_in_user, operation, before, transactioncode, is_undo)
765 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
766 RETURN OLD;
767 END IF;
768 END;
769 \$function\$ ;
771 CREATE TRIGGER nd_experiment_contact_audit_trig
772 BEFORE INSERT OR UPDATE OR DELETE
773 ON public.nd_experiment_contact
774 FOR EACH ROW
775 EXECUTE PROCEDURE public.nd_experiment_contact_audit_trig();
777 CREATE TABLE audit.nd_experiment_dbxref_audit(
778 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
779 operation VARCHAR(10) NOT NULL,
780 username TEXT NOT NULL DEFAULT "current_user"(),
781 logged_in_user INT,
782 before JSONB,
783 after JSONB,
784 transactioncode VARCHAR(40),
785 nd_experiment_dbxref_audit_id SERIAL PRIMARY KEY,
786 is_undo BOOLEAN
789 ALTER TABLE audit.nd_experiment_dbxref_audit OWNER TO web_usr;
791 CREATE OR REPLACE FUNCTION public.nd_experiment_dbxref_audit_trig()
792 RETURNS trigger
793 LANGUAGE plpgsql
794 AS \$function\$
795 BEGIN
797 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
799 IF TG_OP = 'INSERT'
800 THEN
801 INSERT INTO audit.nd_experiment_dbxref_audit (logged_in_user, operation, after, transactioncode, is_undo)
802 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
803 RETURN NEW;
805 ELSIF TG_OP = 'UPDATE'
806 THEN
807 IF NEW != OLD THEN
808 INSERT INTO audit.nd_experiment_dbxref_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
809 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
810 END IF;
811 RETURN NEW;
813 ELSIF TG_OP = 'DELETE'
814 THEN
815 INSERT INTO audit.nd_experiment_dbxref_audit (logged_in_user, operation, before, transactioncode, is_undo)
816 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
817 RETURN OLD;
818 END IF;
819 END;
820 \$function\$ ;
822 CREATE TRIGGER nd_experiment_dbxref_audit_trig
823 BEFORE INSERT OR UPDATE OR DELETE
824 ON public.nd_experiment_dbxref
825 FOR EACH ROW
826 EXECUTE PROCEDURE public.nd_experiment_dbxref_audit_trig();
828 CREATE TABLE audit.nd_experiment_genotype_audit(
829 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
830 operation VARCHAR(10) NOT NULL,
831 username TEXT NOT NULL DEFAULT "current_user"(),
832 logged_in_user INT,
833 before JSONB,
834 after JSONB,
835 transactioncode VARCHAR(40),
836 nd_experiment_genotype_audit_id SERIAL PRIMARY KEY,
837 is_undo BOOLEAN
840 ALTER TABLE audit.nd_experiment_genotype_audit OWNER TO web_usr;
842 CREATE OR REPLACE FUNCTION public.nd_experiment_genotype_audit_trig()
843 RETURNS trigger
844 LANGUAGE plpgsql
845 AS \$function\$
846 BEGIN
848 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
850 IF TG_OP = 'INSERT'
851 THEN
852 INSERT INTO audit.nd_experiment_genotype_audit (logged_in_user, operation, after, transactioncode, is_undo)
853 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
854 RETURN NEW;
856 ELSIF TG_OP = 'UPDATE'
857 THEN
858 IF NEW != OLD THEN
859 INSERT INTO audit.nd_experiment_genotype_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
860 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
861 END IF;
862 RETURN NEW;
864 ELSIF TG_OP = 'DELETE'
865 THEN
866 INSERT INTO audit.nd_experiment_genotype_audit (logged_in_user, operation, before, transactioncode, is_undo)
867 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
868 RETURN OLD;
869 END IF;
870 END;
871 \$function\$ ;
873 CREATE TRIGGER nd_experiment_genotype_audit_trig
874 BEFORE INSERT OR UPDATE OR DELETE
875 ON public.nd_experiment_genotype
876 FOR EACH ROW
877 EXECUTE PROCEDURE public.nd_experiment_genotype_audit_trig();
879 CREATE TABLE audit.nd_experiment_phenotype_audit(
880 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
881 operation VARCHAR(10) NOT NULL,
882 username TEXT NOT NULL DEFAULT "current_user"(),
883 logged_in_user INT,
884 before JSONB,
885 after JSONB,
886 transactioncode VARCHAR(40),
887 nd_experiment_phenotype_audit_id SERIAL PRIMARY KEY,
888 is_undo BOOLEAN
891 ALTER TABLE audit.nd_experiment_phenotype_audit OWNER TO web_usr;
893 CREATE OR REPLACE FUNCTION public.nd_experiment_phenotype_audit_trig()
894 RETURNS trigger
895 LANGUAGE plpgsql
896 AS \$function\$
897 BEGIN
899 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
901 IF TG_OP = 'INSERT'
902 THEN
903 INSERT INTO audit.nd_experiment_phenotype_audit (logged_in_user, operation, after, transactioncode, is_undo)
904 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
905 RETURN NEW;
907 ELSIF TG_OP = 'UPDATE'
908 THEN
909 IF NEW != OLD THEN
910 INSERT INTO audit.nd_experiment_phenotype_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
911 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
912 END IF;
913 RETURN NEW;
915 ELSIF TG_OP = 'DELETE'
916 THEN
917 INSERT INTO audit.nd_experiment_phenotype_audit (logged_in_user, operation, before, transactioncode, is_undo)
918 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
919 RETURN OLD;
920 END IF;
921 END;
922 \$function\$ ;
924 CREATE TRIGGER nd_experiment_phenotype_audit_trig
925 BEFORE INSERT OR UPDATE OR DELETE
926 ON public.nd_experiment_phenotype
927 FOR EACH ROW
928 EXECUTE PROCEDURE public.nd_experiment_phenotype_audit_trig();
930 CREATE TABLE audit.nd_experiment_project_audit(
931 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
932 operation VARCHAR(10) NOT NULL,
933 username TEXT NOT NULL DEFAULT "current_user"(),
934 logged_in_user INT,
935 before JSONB,
936 after JSONB,
937 transactioncode VARCHAR(40),
938 nd_experiment_project_audit_id SERIAL PRIMARY KEY,
939 is_undo BOOLEAN
942 ALTER TABLE audit.nd_experiment_project_audit OWNER TO web_usr;
944 CREATE OR REPLACE FUNCTION public.nd_experiment_project_audit_trig()
945 RETURNS trigger
946 LANGUAGE plpgsql
947 AS \$function\$
948 BEGIN
950 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
952 IF TG_OP = 'INSERT'
953 THEN
954 INSERT INTO audit.nd_experiment_project_audit (logged_in_user, operation, after, transactioncode, is_undo)
955 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
956 RETURN NEW;
958 ELSIF TG_OP = 'UPDATE'
959 THEN
960 IF NEW != OLD THEN
961 INSERT INTO audit.nd_experiment_project_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
962 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
963 END IF;
964 RETURN NEW;
966 ELSIF TG_OP = 'DELETE'
967 THEN
968 INSERT INTO audit.nd_experiment_project_audit (logged_in_user, operation, before, transactioncode, is_undo)
969 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
970 RETURN OLD;
971 END IF;
972 END;
973 \$function\$ ;
975 CREATE TRIGGER nd_experiment_project_audit_trig
976 BEFORE INSERT OR UPDATE OR DELETE
977 ON public.nd_experiment_project
978 FOR EACH ROW
979 EXECUTE PROCEDURE public.nd_experiment_project_audit_trig();
981 CREATE TABLE audit.nd_experiment_protocol_audit(
982 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
983 operation VARCHAR(10) NOT NULL,
984 username TEXT NOT NULL DEFAULT "current_user"(),
985 logged_in_user INT,
986 before JSONB,
987 after JSONB,
988 transactioncode VARCHAR(40),
989 nd_experiment_protocol_audit_id SERIAL PRIMARY KEY,
990 is_undo BOOLEAN
993 ALTER TABLE audit.nd_experiment_protocol_audit OWNER TO web_usr;
995 CREATE OR REPLACE FUNCTION public.nd_experiment_protocol_audit_trig()
996 RETURNS trigger
997 LANGUAGE plpgsql
998 AS \$function\$
999 BEGIN
1001 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1003 IF TG_OP = 'INSERT'
1004 THEN
1005 INSERT INTO audit.nd_experiment_protocol_audit (logged_in_user, operation, after, transactioncode, is_undo)
1006 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1007 RETURN NEW;
1009 ELSIF TG_OP = 'UPDATE'
1010 THEN
1011 IF NEW != OLD THEN
1012 INSERT INTO audit.nd_experiment_protocol_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1013 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1014 END IF;
1015 RETURN NEW;
1017 ELSIF TG_OP = 'DELETE'
1018 THEN
1019 INSERT INTO audit.nd_experiment_protocol_audit (logged_in_user, operation, before, transactioncode, is_undo)
1020 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1021 RETURN OLD;
1022 END IF;
1023 END;
1024 \$function\$ ;
1026 CREATE TRIGGER nd_experiment_protocol_audit_trig
1027 BEFORE INSERT OR UPDATE OR DELETE
1028 ON public.nd_experiment_protocol
1029 FOR EACH ROW
1030 EXECUTE PROCEDURE public.nd_experiment_protocol_audit_trig();
1032 CREATE TABLE audit.nd_experiment_pub_audit(
1033 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1034 operation VARCHAR(10) NOT NULL,
1035 username TEXT NOT NULL DEFAULT "current_user"(),
1036 logged_in_user INT,
1037 before JSONB,
1038 after JSONB,
1039 transactioncode VARCHAR(40),
1040 nd_experiment_pub_audit_id SERIAL PRIMARY KEY,
1041 is_undo BOOLEAN
1044 ALTER TABLE audit.nd_experiment_pub_audit OWNER TO web_usr;
1046 CREATE OR REPLACE FUNCTION public.nd_experiment_pub_audit_trig()
1047 RETURNS trigger
1048 LANGUAGE plpgsql
1049 AS \$function\$
1050 BEGIN
1052 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1053 IF TG_OP = 'INSERT'
1054 THEN
1055 INSERT INTO audit.nd_experiment_pub_audit (logged_in_user, operation, after, transactioncode, is_undo)
1056 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1057 RETURN NEW;
1059 ELSIF TG_OP = 'UPDATE'
1060 THEN
1061 IF NEW != OLD THEN
1062 INSERT INTO audit.nd_experiment_pub_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1063 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1064 END IF;
1065 RETURN NEW;
1067 ELSIF TG_OP = 'DELETE'
1068 THEN
1069 INSERT INTO audit.nd_experiment_pub_audit (logged_in_user, operation, before, transactioncode, is_undo)
1070 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1071 RETURN OLD;
1072 END IF;
1073 END;
1074 \$function\$ ;
1076 CREATE TRIGGER nd_experiment_pub_audit_trig
1077 BEFORE INSERT OR UPDATE OR DELETE
1078 ON public.nd_experiment_pub
1079 FOR EACH ROW
1080 EXECUTE PROCEDURE public.nd_experiment_pub_audit_trig();
1082 CREATE TABLE audit.nd_experiment_stock_audit(
1083 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1084 operation VARCHAR(10) NOT NULL,
1085 username TEXT NOT NULL DEFAULT "current_user"(),
1086 logged_in_user INT,
1087 before JSONB,
1088 after JSONB,
1089 transactioncode VARCHAR(40),
1090 nd_experiment_stock_audit_id SERIAL PRIMARY KEY,
1091 is_undo BOOLEAN
1094 ALTER TABLE audit.nd_experiment_stock_audit OWNER TO web_usr;
1096 CREATE OR REPLACE FUNCTION public.nd_experiment_stock_audit_trig()
1097 RETURNS trigger
1098 LANGUAGE plpgsql
1099 AS \$function\$
1100 BEGIN
1102 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1104 IF TG_OP = 'INSERT'
1105 THEN
1106 INSERT INTO audit.nd_experiment_stock_audit (logged_in_user, operation, after, transactioncode, is_undo)
1107 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1108 RETURN NEW;
1110 ELSIF TG_OP = 'UPDATE'
1111 THEN
1112 IF NEW != OLD THEN
1113 INSERT INTO audit.nd_experiment_stock_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1114 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1115 END IF;
1116 RETURN NEW;
1118 ELSIF TG_OP = 'DELETE'
1119 THEN
1120 INSERT INTO audit.nd_experiment_stock_audit (logged_in_user, operation, before, transactioncode, is_undo)
1121 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1122 RETURN OLD;
1123 END IF;
1124 END;
1125 \$function\$ ;
1127 CREATE TRIGGER nd_experiment_stock_audit_trig
1128 BEFORE INSERT OR UPDATE OR DELETE
1129 ON public.nd_experiment_stock
1130 FOR EACH ROW
1131 EXECUTE PROCEDURE public.nd_experiment_stock_audit_trig();
1133 CREATE TABLE audit.nd_experiment_stock_dbxref_audit(
1134 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1135 operation VARCHAR(10) NOT NULL,
1136 username TEXT NOT NULL DEFAULT "current_user"(),
1137 logged_in_user INT,
1138 before JSONB,
1139 after JSONB,
1140 transactioncode VARCHAR(40),
1141 nd_experiment_stock_dbxref_audit_id SERIAL PRIMARY KEY,
1142 is_undo BOOLEAN
1145 ALTER TABLE audit.nd_experiment_stock_dbxref_audit OWNER TO web_usr;
1147 CREATE OR REPLACE FUNCTION public.nd_experiment_stock_dbxref_audit_trig()
1148 RETURNS trigger
1149 LANGUAGE plpgsql
1150 AS \$function\$
1151 BEGIN
1153 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1155 IF TG_OP = 'INSERT'
1156 THEN
1157 INSERT INTO audit.nd_experiment_stock_dbxref_audit (logged_in_user, operation, after, transactioncode, is_undo)
1158 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1159 RETURN NEW;
1161 ELSIF TG_OP = 'UPDATE'
1162 THEN
1163 IF NEW != OLD THEN
1164 INSERT INTO audit.nd_experiment_stock_dbxref_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1165 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1166 END IF;
1167 RETURN NEW;
1169 ELSIF TG_OP = 'DELETE'
1170 THEN
1171 INSERT INTO audit.nd_experiment_stock_dbxref_audit (logged_in_user, operation, before, transactioncode, is_undo)
1172 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1173 RETURN OLD;
1174 END IF;
1175 END;
1176 \$function\$ ;
1178 CREATE TRIGGER nd_experiment_stock_dbxref_audit_trig
1179 BEFORE INSERT OR UPDATE OR DELETE
1180 ON public.nd_experiment_stock_dbxref
1181 FOR EACH ROW
1182 EXECUTE PROCEDURE public.nd_experiment_stock_dbxref_audit_trig();
1184 CREATE TABLE audit.nd_experiment_stockprop_audit(
1185 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1186 operation VARCHAR(10) NOT NULL,
1187 username TEXT NOT NULL DEFAULT "current_user"(),
1188 logged_in_user INT,
1189 before JSONB,
1190 after JSONB,
1191 transactioncode VARCHAR(40),
1192 nd_experiment_stockprop_audit_id SERIAL PRIMARY KEY,
1193 is_undo BOOLEAN
1196 ALTER TABLE audit.nd_experiment_stockprop_audit OWNER TO web_usr;
1198 CREATE OR REPLACE FUNCTION public.nd_experiment_stockprop_audit_trig()
1199 RETURNS trigger
1200 LANGUAGE plpgsql
1201 AS \$function\$
1202 BEGIN
1204 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1206 IF TG_OP = 'INSERT'
1207 THEN
1208 INSERT INTO audit.nd_experiment_stockprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
1209 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1210 RETURN NEW;
1212 ELSIF TG_OP = 'UPDATE'
1213 THEN
1214 IF NEW != OLD THEN
1215 INSERT INTO audit.nd_experiment_stockprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1216 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1217 END IF;
1218 RETURN NEW;
1220 ELSIF TG_OP = 'DELETE'
1221 THEN
1222 INSERT INTO audit.nd_experiment_stockprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
1223 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1224 RETURN OLD;
1225 END IF;
1226 END;
1227 \$function\$ ;
1229 CREATE TRIGGER nd_experiment_stockprop_audit_trig
1230 BEFORE INSERT OR UPDATE OR DELETE
1231 ON public.nd_experiment_stockprop
1232 FOR EACH ROW
1233 EXECUTE PROCEDURE public.nd_experiment_stockprop_audit_trig();
1235 CREATE TABLE audit.nd_experimentprop_audit(
1236 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1237 operation VARCHAR(10) NOT NULL,
1238 username TEXT NOT NULL DEFAULT "current_user"(),
1239 logged_in_user INT,
1240 before JSONB,
1241 after JSONB,
1242 transactioncode VARCHAR(40),
1243 nd_experimentprop_audit_id SERIAL PRIMARY KEY,
1244 is_undo BOOLEAN
1247 ALTER TABLE audit.nd_experimentprop_audit OWNER TO web_usr;
1249 CREATE OR REPLACE FUNCTION public.nd_experimentprop_audit_trig()
1250 RETURNS trigger
1251 LANGUAGE plpgsql
1252 AS \$function\$
1253 BEGIN
1255 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1257 IF TG_OP = 'INSERT'
1258 THEN
1259 INSERT INTO audit.nd_experimentprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
1260 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1261 RETURN NEW;
1263 ELSIF TG_OP = 'UPDATE'
1264 THEN
1265 IF NEW != OLD THEN
1266 INSERT INTO audit.nd_experimentprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1267 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1268 END IF;
1269 RETURN NEW;
1271 ELSIF TG_OP = 'DELETE'
1272 THEN
1273 INSERT INTO audit.nd_experimentprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
1274 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1275 RETURN OLD;
1276 END IF;
1277 END;
1278 \$function\$ ;
1280 CREATE TRIGGER nd_experimentprop_audit_trig
1281 BEFORE INSERT OR UPDATE OR DELETE
1282 ON public.nd_experimentprop
1283 FOR EACH ROW
1284 EXECUTE PROCEDURE public.nd_experimentprop_audit_trig();
1286 CREATE TABLE audit.nd_geolocation_audit(
1287 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1288 operation VARCHAR(10) NOT NULL,
1289 username TEXT NOT NULL DEFAULT "current_user"(),
1290 logged_in_user INT,
1291 before JSONB,
1292 after JSONB,
1293 transactioncode VARCHAR(40),
1294 nd_geolocation_audit_id SERIAL PRIMARY KEY,
1295 is_undo BOOLEAN
1298 ALTER TABLE audit.nd_geolocation_audit OWNER TO web_usr;
1300 CREATE OR REPLACE FUNCTION public.nd_geolocation_audit_trig()
1301 RETURNS trigger
1302 LANGUAGE plpgsql
1303 AS \$function\$
1304 BEGIN
1306 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1308 IF TG_OP = 'INSERT'
1309 THEN
1310 INSERT INTO audit.nd_geolocation_audit (logged_in_user, operation, after, transactioncode, is_undo)
1311 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1312 RETURN NEW;
1314 ELSIF TG_OP = 'UPDATE'
1315 THEN
1316 IF NEW != OLD THEN
1317 INSERT INTO audit.nd_geolocation_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1318 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1319 END IF;
1320 RETURN NEW;
1322 ELSIF TG_OP = 'DELETE'
1323 THEN
1324 INSERT INTO audit.nd_geolocation_audit (logged_in_user, operation, before, transactioncode, is_undo)
1325 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1326 RETURN OLD;
1327 END IF;
1328 END;
1329 \$function\$ ;
1331 CREATE TRIGGER nd_geolocation_audit_trig
1332 BEFORE INSERT OR UPDATE OR DELETE
1333 ON public.nd_geolocation
1334 FOR EACH ROW
1335 EXECUTE PROCEDURE public.nd_geolocation_audit_trig();
1337 CREATE TABLE audit.nd_geolocationprop_audit(
1338 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1339 operation VARCHAR(10) NOT NULL,
1340 username TEXT NOT NULL DEFAULT "current_user"(),
1341 logged_in_user INT,
1342 before JSONB,
1343 after JSONB,
1344 transactioncode VARCHAR(40),
1345 nd_geolocationprop_audit_id SERIAL PRIMARY KEY,
1346 is_undo BOOLEAN
1349 ALTER TABLE audit.nd_geolocationprop_audit OWNER TO web_usr;
1351 CREATE OR REPLACE FUNCTION public.nd_geolocationprop_audit_trig()
1352 RETURNS trigger
1353 LANGUAGE plpgsql
1354 AS \$function\$
1355 BEGIN
1357 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1359 IF TG_OP = 'INSERT'
1360 THEN
1361 INSERT INTO audit.nd_geolocationprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
1362 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1363 RETURN NEW;
1365 ELSIF TG_OP = 'UPDATE'
1366 THEN
1367 IF NEW != OLD THEN
1368 INSERT INTO audit.nd_geolocationprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1369 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1370 END IF;
1371 RETURN NEW;
1373 ELSIF TG_OP = 'DELETE'
1374 THEN
1375 INSERT INTO audit.nd_geolocationprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
1376 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1377 RETURN OLD;
1378 END IF;
1379 END;
1380 \$function\$ ;
1382 CREATE TRIGGER nd_geolocationprop_audit_trig
1383 BEFORE INSERT OR UPDATE OR DELETE
1384 ON public.nd_geolocationprop
1385 FOR EACH ROW
1386 EXECUTE PROCEDURE public.nd_geolocationprop_audit_trig();
1388 CREATE TABLE audit.nd_protocol_audit(
1389 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1390 operation VARCHAR(10) NOT NULL,
1391 username TEXT NOT NULL DEFAULT "current_user"(),
1392 logged_in_user INT,
1393 before JSONB,
1394 after JSONB,
1395 transactioncode VARCHAR(40),
1396 nd_protocol_audit_id SERIAL PRIMARY KEY,
1397 is_undo BOOLEAN
1400 ALTER TABLE audit.nd_protocol_audit OWNER TO web_usr;
1402 CREATE OR REPLACE FUNCTION public.nd_protocol_audit_trig()
1403 RETURNS trigger
1404 LANGUAGE plpgsql
1405 AS \$function\$
1406 BEGIN
1408 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1410 IF TG_OP = 'INSERT'
1411 THEN
1412 INSERT INTO audit.nd_protocol_audit (logged_in_user, operation, after, transactioncode, is_undo)
1413 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1414 RETURN NEW;
1416 ELSIF TG_OP = 'UPDATE'
1417 THEN
1418 IF NEW != OLD THEN
1419 INSERT INTO audit.nd_protocol_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1420 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1421 END IF;
1422 RETURN NEW;
1424 ELSIF TG_OP = 'DELETE'
1425 THEN
1426 INSERT INTO audit.nd_protocol_audit (logged_in_user, operation, before, transactioncode, is_undo)
1427 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1428 RETURN OLD;
1429 END IF;
1430 END;
1431 \$function\$ ;
1433 CREATE TRIGGER nd_protocol_audit_trig
1434 BEFORE INSERT OR UPDATE OR DELETE
1435 ON public.nd_protocol
1436 FOR EACH ROW
1437 EXECUTE PROCEDURE public.nd_protocol_audit_trig();
1439 CREATE TABLE audit.nd_protocol_reagent_audit(
1440 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1441 operation VARCHAR(10) NOT NULL,
1442 username TEXT NOT NULL DEFAULT "current_user"(),
1443 logged_in_user INT,
1444 before JSONB,
1445 after JSONB,
1446 transactioncode VARCHAR(40),
1447 nd_protocol_reagent_audit_id SERIAL PRIMARY KEY,
1448 is_undo BOOLEAN
1451 ALTER TABLE audit.nd_protocol_reagent_audit OWNER TO web_usr;
1453 CREATE OR REPLACE FUNCTION public.nd_protocol_reagent_audit_trig()
1454 RETURNS trigger
1455 LANGUAGE plpgsql
1456 AS \$function\$
1457 BEGIN
1459 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1461 IF TG_OP = 'INSERT'
1462 THEN
1463 INSERT INTO audit.nd_protocol_reagent_audit (logged_in_user, operation, after, transactioncode, is_undo)
1464 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1465 RETURN NEW;
1467 ELSIF TG_OP = 'UPDATE'
1468 THEN
1469 IF NEW != OLD THEN
1470 INSERT INTO audit.nd_protocol_reagent_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1471 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1472 END IF;
1473 RETURN NEW;
1475 ELSIF TG_OP = 'DELETE'
1476 THEN
1477 INSERT INTO audit.nd_protocol_reagent_audit (logged_in_user, operation, before, transactioncode, is_undo)
1478 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1479 RETURN OLD;
1480 END IF;
1481 END;
1482 \$function\$ ;
1484 CREATE TRIGGER nd_protocol_reagent_audit_trig
1485 BEFORE INSERT OR UPDATE OR DELETE
1486 ON public.nd_protocol_reagent
1487 FOR EACH ROW
1488 EXECUTE PROCEDURE public.nd_protocol_reagent_audit_trig();
1490 CREATE TABLE audit.nd_protocolprop_audit(
1491 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1492 operation VARCHAR(10) NOT NULL,
1493 username TEXT NOT NULL DEFAULT "current_user"(),
1494 logged_in_user INT,
1495 before JSONB,
1496 after JSONB,
1497 transactioncode VARCHAR(40),
1498 nd_protocolprop_audit_id SERIAL PRIMARY KEY,
1499 is_undo BOOLEAN
1502 ALTER TABLE audit.nd_protocolprop_audit OWNER TO web_usr;
1504 CREATE OR REPLACE FUNCTION public.nd_protocolprop_audit_trig()
1505 RETURNS trigger
1506 LANGUAGE plpgsql
1507 AS \$function\$
1508 BEGIN
1510 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1512 IF TG_OP = 'INSERT'
1513 THEN
1514 INSERT INTO audit.nd_protocolprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
1515 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1516 RETURN NEW;
1518 ELSIF TG_OP = 'UPDATE'
1519 THEN
1520 IF NEW != OLD THEN
1521 INSERT INTO audit.nd_protocolprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1522 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1523 END IF;
1524 RETURN NEW;
1526 ELSIF TG_OP = 'DELETE'
1527 THEN
1528 INSERT INTO audit.nd_protocolprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
1529 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1530 RETURN OLD;
1531 END IF;
1532 END;
1533 \$function\$ ;
1535 CREATE TRIGGER nd_protocolprop_audit_trig
1536 BEFORE INSERT OR UPDATE OR DELETE
1537 ON public.nd_protocolprop
1538 FOR EACH ROW
1539 EXECUTE PROCEDURE public.nd_protocolprop_audit_trig();
1541 CREATE TABLE audit.nd_reagent_audit(
1542 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1543 operation VARCHAR(10) NOT NULL,
1544 username TEXT NOT NULL DEFAULT "current_user"(),
1545 logged_in_user INT,
1546 before JSONB,
1547 after JSONB,
1548 transactioncode VARCHAR(40),
1549 nd_reagent_audit_id SERIAL PRIMARY KEY,
1550 is_undo BOOLEAN
1553 ALTER TABLE audit.nd_reagent_audit OWNER TO web_usr;
1555 CREATE OR REPLACE FUNCTION public.nd_reagent_audit_trig()
1556 RETURNS trigger
1557 LANGUAGE plpgsql
1558 AS \$function\$
1559 BEGIN
1561 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1563 IF TG_OP = 'INSERT'
1564 THEN
1565 INSERT INTO audit.nd_reagent_audit (logged_in_user, operation, after, transactioncode, is_undo)
1566 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1567 RETURN NEW;
1569 ELSIF TG_OP = 'UPDATE'
1570 THEN
1571 IF NEW != OLD THEN
1572 INSERT INTO audit.nd_reagent_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1573 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1574 END IF;
1575 RETURN NEW;
1577 ELSIF TG_OP = 'DELETE'
1578 THEN
1579 INSERT INTO audit.nd_reagent_audit (logged_in_user, operation, before, transactioncode, is_undo)
1580 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1581 RETURN OLD;
1582 END IF;
1583 END;
1584 \$function\$ ;
1586 CREATE TRIGGER nd_reagent_audit_trig
1587 BEFORE INSERT OR UPDATE OR DELETE
1588 ON public.nd_reagent
1589 FOR EACH ROW
1590 EXECUTE PROCEDURE public.nd_reagent_audit_trig();
1592 CREATE TABLE audit.nd_reagent_relationship_audit(
1593 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1594 operation VARCHAR(10) NOT NULL,
1595 username TEXT NOT NULL DEFAULT "current_user"(),
1596 logged_in_user INT,
1597 before JSONB,
1598 after JSONB,
1599 transactioncode VARCHAR(40),
1600 nd_reagent_relationship_audit_id SERIAL PRIMARY KEY,
1601 is_undo BOOLEAN
1604 ALTER TABLE audit.nd_reagent_relationship_audit OWNER TO web_usr;
1606 CREATE OR REPLACE FUNCTION public.nd_reagent_relationship_audit_trig()
1607 RETURNS trigger
1608 LANGUAGE plpgsql
1609 AS \$function\$
1610 BEGIN
1612 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1614 IF TG_OP = 'INSERT'
1615 THEN
1616 INSERT INTO audit.nd_reagent_relationship_audit (logged_in_user, operation, after, transactioncode, is_undo)
1617 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1618 RETURN NEW;
1620 ELSIF TG_OP = 'UPDATE'
1621 THEN
1622 IF NEW != OLD THEN
1623 INSERT INTO audit.nd_reagent_relationship_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1624 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1625 END IF;
1626 RETURN NEW;
1628 ELSIF TG_OP = 'DELETE'
1629 THEN
1630 INSERT INTO audit.nd_reagent_relationship_audit (logged_in_user, operation, before, transactioncode, is_undo)
1631 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1632 RETURN OLD;
1633 END IF;
1634 END;
1635 \$function\$ ;
1637 CREATE TRIGGER nd_reagent_relationship_audit_trig
1638 BEFORE INSERT OR UPDATE OR DELETE
1639 ON public.nd_reagent_relationship
1640 FOR EACH ROW
1641 EXECUTE PROCEDURE public.nd_reagent_relationship_audit_trig();
1643 CREATE TABLE audit.nd_reagentprop_audit(
1644 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1645 operation VARCHAR(10) NOT NULL,
1646 username TEXT NOT NULL DEFAULT "current_user"(),
1647 logged_in_user INT,
1648 before JSONB,
1649 after JSONB,
1650 transactioncode VARCHAR(40),
1651 nd_reagentprop_audit_id SERIAL PRIMARY KEY,
1652 is_undo BOOLEAN
1655 ALTER TABLE audit.nd_reagentprop_audit OWNER TO web_usr;
1657 CREATE OR REPLACE FUNCTION public.nd_reagentprop_audit_trig()
1658 RETURNS trigger
1659 LANGUAGE plpgsql
1660 AS \$function\$
1661 BEGIN
1663 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1665 IF TG_OP = 'INSERT'
1666 THEN
1667 INSERT INTO audit.nd_reagentprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
1668 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1669 RETURN NEW;
1671 ELSIF TG_OP = 'UPDATE'
1672 THEN
1673 IF NEW != OLD THEN
1674 INSERT INTO audit.nd_reagentprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1675 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1676 END IF;
1677 RETURN NEW;
1679 ELSIF TG_OP = 'DELETE'
1680 THEN
1681 INSERT INTO audit.nd_reagentprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
1682 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1683 RETURN OLD;
1684 END IF;
1685 END;
1686 \$function\$ ;
1688 CREATE TRIGGER nd_reagentprop_audit_trig
1689 BEFORE INSERT OR UPDATE OR DELETE
1690 ON public.nd_reagentprop
1691 FOR EACH ROW
1692 EXECUTE PROCEDURE public.nd_reagentprop_audit_trig();
1694 CREATE TABLE audit.organism_audit(
1695 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1696 operation VARCHAR(10) NOT NULL,
1697 username TEXT NOT NULL DEFAULT "current_user"(),
1698 logged_in_user INT,
1699 before JSONB,
1700 after JSONB,
1701 transactioncode VARCHAR(40),
1702 organism_audit_id SERIAL PRIMARY KEY,
1703 is_undo BOOLEAN
1706 ALTER TABLE audit.organism_audit OWNER TO web_usr;
1708 CREATE OR REPLACE FUNCTION public.organism_audit_trig()
1709 RETURNS trigger
1710 LANGUAGE plpgsql
1711 AS \$function\$
1712 BEGIN
1714 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1716 IF TG_OP = 'INSERT'
1717 THEN
1718 INSERT INTO audit.organism_audit (logged_in_user, operation, after, transactioncode, is_undo)
1719 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1720 RETURN NEW;
1722 ELSIF TG_OP = 'UPDATE'
1723 THEN
1724 IF NEW != OLD THEN
1725 INSERT INTO audit.organism_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1726 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1727 END IF;
1728 RETURN NEW;
1730 ELSIF TG_OP = 'DELETE'
1731 THEN
1732 INSERT INTO audit.organism_audit (logged_in_user, operation, before, transactioncode, is_undo)
1733 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1734 RETURN OLD;
1735 END IF;
1736 END;
1737 \$function\$ ;
1739 CREATE TRIGGER organism_audit_trig
1740 BEFORE INSERT OR UPDATE OR DELETE
1741 ON public.organism
1742 FOR EACH ROW
1743 EXECUTE PROCEDURE public.organism_audit_trig();
1745 CREATE TABLE audit.organism_dbxref_audit(
1746 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1747 operation VARCHAR(10) NOT NULL,
1748 username TEXT NOT NULL DEFAULT "current_user"(),
1749 logged_in_user INT,
1750 before JSONB,
1751 after JSONB,
1752 transactioncode VARCHAR(40),
1753 organism_dbxref_audit_id SERIAL PRIMARY KEY,
1754 is_undo BOOLEAN
1757 ALTER TABLE audit.organism_dbxref_audit OWNER TO web_usr;
1759 CREATE OR REPLACE FUNCTION public.organism_dbxref_audit_trig()
1760 RETURNS trigger
1761 LANGUAGE plpgsql
1762 AS \$function\$
1763 BEGIN
1765 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1767 IF TG_OP = 'INSERT'
1768 THEN
1769 INSERT INTO audit.organism_dbxref_audit (logged_in_user, operation, after, transactioncode, is_undo)
1770 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1771 RETURN NEW;
1773 ELSIF TG_OP = 'UPDATE'
1774 THEN
1775 IF NEW != OLD THEN
1776 INSERT INTO audit.organism_dbxref_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1777 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1778 END IF;
1779 RETURN NEW;
1781 ELSIF TG_OP = 'DELETE'
1782 THEN
1783 INSERT INTO audit.organism_dbxref_audit (logged_in_user, operation, before, transactioncode, is_undo)
1784 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1785 RETURN OLD;
1786 END IF;
1787 END;
1788 \$function\$ ;
1790 CREATE TRIGGER organism_dbxref_audit_trig
1791 BEFORE INSERT OR UPDATE OR DELETE
1792 ON public.organism_dbxref
1793 FOR EACH ROW
1794 EXECUTE PROCEDURE public.organism_dbxref_audit_trig();
1796 CREATE TABLE audit.organism_relationship_audit(
1797 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1798 operation VARCHAR(10) NOT NULL,
1799 username TEXT NOT NULL DEFAULT "current_user"(),
1800 logged_in_user INT,
1801 before JSONB,
1802 after JSONB,
1803 transactioncode VARCHAR(40),
1804 organism_relationship_audit_id SERIAL PRIMARY KEY,
1805 is_undo BOOLEAN
1808 ALTER TABLE audit.organism_relationship_audit OWNER TO web_usr;
1810 CREATE OR REPLACE FUNCTION public.organism_relationship_audit_trig()
1811 RETURNS trigger
1812 LANGUAGE plpgsql
1813 AS \$function\$
1814 BEGIN
1816 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1818 IF TG_OP = 'INSERT'
1819 THEN
1820 INSERT INTO audit.organism_relationship_audit (logged_in_user, operation, after, transactioncode, is_undo)
1821 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1822 RETURN NEW;
1824 ELSIF TG_OP = 'UPDATE'
1825 THEN
1826 IF NEW != OLD THEN
1827 INSERT INTO audit.organism_relationship_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1828 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1829 END IF;
1830 RETURN NEW;
1832 ELSIF TG_OP = 'DELETE'
1833 THEN
1834 INSERT INTO audit.organism_relationship_audit (logged_in_user, operation, before, transactioncode, is_undo)
1835 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1836 RETURN OLD;
1837 END IF;
1838 END;
1839 \$function\$ ;
1841 CREATE TRIGGER organism_relationship_audit_trig
1842 BEFORE INSERT OR UPDATE OR DELETE
1843 ON public.organism_relationship
1844 FOR EACH ROW
1845 EXECUTE PROCEDURE public.organism_relationship_audit_trig();
1847 CREATE TABLE audit.organismpath_audit(
1848 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1849 operation VARCHAR(10) NOT NULL,
1850 username TEXT NOT NULL DEFAULT "current_user"(),
1851 logged_in_user INT,
1852 before JSONB,
1853 after JSONB,
1854 transactioncode VARCHAR(40),
1855 organismpath_audit_id SERIAL PRIMARY KEY,
1856 is_undo BOOLEAN
1859 ALTER TABLE audit.organismpath_audit OWNER TO web_usr;
1861 CREATE OR REPLACE FUNCTION public.organismpath_audit_trig()
1862 RETURNS trigger
1863 LANGUAGE plpgsql
1864 AS \$function\$
1865 BEGIN
1867 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1869 IF TG_OP = 'INSERT'
1870 THEN
1871 INSERT INTO audit.organismpath_audit (logged_in_user, operation, after, transactioncode, is_undo)
1872 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1873 RETURN NEW;
1875 ELSIF TG_OP = 'UPDATE'
1876 THEN
1877 IF NEW != OLD THEN
1878 INSERT INTO audit.organismpath_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1879 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1880 END IF;
1881 RETURN NEW;
1883 ELSIF TG_OP = 'DELETE'
1884 THEN
1885 INSERT INTO audit.organismpath_audit (logged_in_user, operation, before, transactioncode, is_undo)
1886 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1887 RETURN OLD;
1888 END IF;
1889 END;
1890 \$function\$ ;
1892 CREATE TRIGGER organismpath_audit_trig
1893 BEFORE INSERT OR UPDATE OR DELETE
1894 ON public.organismpath
1895 FOR EACH ROW
1896 EXECUTE PROCEDURE public.organismpath_audit_trig();
1898 CREATE TABLE audit.organismprop_audit(
1899 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1900 operation VARCHAR(10) NOT NULL,
1901 username TEXT NOT NULL DEFAULT "current_user"(),
1902 logged_in_user INT,
1903 before JSONB,
1904 after JSONB,
1905 transactioncode VARCHAR(40),
1906 organismprop_audit_id SERIAL PRIMARY KEY,
1907 is_undo BOOLEAN
1910 ALTER TABLE audit.organismprop_audit OWNER TO web_usr;
1912 CREATE OR REPLACE FUNCTION public.organismprop_audit_trig()
1913 RETURNS trigger
1914 LANGUAGE plpgsql
1915 AS \$function\$
1916 BEGIN
1918 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1920 IF TG_OP = 'INSERT'
1921 THEN
1922 INSERT INTO audit.organismprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
1923 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1924 RETURN NEW;
1926 ELSIF TG_OP = 'UPDATE'
1927 THEN
1928 IF NEW != OLD THEN
1929 INSERT INTO audit.organismprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1930 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1931 END IF;
1932 RETURN NEW;
1934 ELSIF TG_OP = 'DELETE'
1935 THEN
1936 INSERT INTO audit.organismprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
1937 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1938 RETURN OLD;
1939 END IF;
1940 END;
1941 \$function\$ ;
1943 CREATE TRIGGER organismprop_audit_trig
1944 BEFORE INSERT OR UPDATE OR DELETE
1945 ON public.organismprop
1946 FOR EACH ROW
1947 EXECUTE PROCEDURE public.organismprop_audit_trig();
1949 CREATE TABLE audit.phenotype_audit(
1950 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
1951 operation VARCHAR(10) NOT NULL,
1952 username TEXT NOT NULL DEFAULT "current_user"(),
1953 logged_in_user INT,
1954 before JSONB,
1955 after JSONB,
1956 transactioncode VARCHAR(40),
1957 phenotype_audit_id SERIAL PRIMARY KEY,
1958 is_undo BOOLEAN
1961 ALTER TABLE audit.phenotype_audit OWNER TO web_usr;
1963 CREATE OR REPLACE FUNCTION public.phenotype_audit_trig()
1964 RETURNS trigger
1965 LANGUAGE plpgsql
1966 AS \$function\$
1967 BEGIN
1969 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
1971 IF TG_OP = 'INSERT'
1972 THEN
1973 INSERT INTO audit.phenotype_audit (logged_in_user, operation, after, transactioncode, is_undo)
1974 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1975 RETURN NEW;
1977 ELSIF TG_OP = 'UPDATE'
1978 THEN
1979 IF NEW != OLD THEN
1980 INSERT INTO audit.phenotype_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
1981 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
1982 END IF;
1983 RETURN NEW;
1985 ELSIF TG_OP = 'DELETE'
1986 THEN
1987 INSERT INTO audit.phenotype_audit (logged_in_user, operation, before, transactioncode, is_undo)
1988 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
1989 RETURN OLD;
1990 END IF;
1991 END;
1992 \$function\$ ;
1994 CREATE TRIGGER phenotype_audit_trig
1995 BEFORE INSERT OR UPDATE OR DELETE
1996 ON public.phenotype
1997 FOR EACH ROW
1998 EXECUTE PROCEDURE public.phenotype_audit_trig();
2000 CREATE TABLE audit.phenotype_cvterm_audit(
2001 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2002 operation VARCHAR(10) NOT NULL,
2003 username TEXT NOT NULL DEFAULT "current_user"(),
2004 logged_in_user INT,
2005 before JSONB,
2006 after JSONB,
2007 transactioncode VARCHAR(40),
2008 phenotype_cvterm_audit_id SERIAL PRIMARY KEY,
2009 is_undo BOOLEAN
2012 ALTER TABLE audit.phenotype_cvterm_audit OWNER TO web_usr;
2014 CREATE OR REPLACE FUNCTION public.phenotype_cvterm_audit_trig()
2015 RETURNS trigger
2016 LANGUAGE plpgsql
2017 AS \$function\$
2018 BEGIN
2020 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2022 IF TG_OP = 'INSERT'
2023 THEN
2024 INSERT INTO audit.phenotype_cvterm_audit (logged_in_user, operation, after, transactioncode, is_undo)
2025 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2026 RETURN NEW;
2028 ELSIF TG_OP = 'UPDATE'
2029 THEN
2030 IF NEW != OLD THEN
2031 INSERT INTO audit.phenotype_cvterm_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2032 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2033 END IF;
2034 RETURN NEW;
2036 ELSIF TG_OP = 'DELETE'
2037 THEN
2038 INSERT INTO audit.phenotype_cvterm_audit (logged_in_user, operation, before, transactioncode, is_undo)
2039 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2040 RETURN OLD;
2041 END IF;
2042 END;
2043 \$function\$ ;
2045 CREATE TRIGGER phenotype_cvterm_audit_trig
2046 BEFORE INSERT OR UPDATE OR DELETE
2047 ON public.phenotype_cvterm
2048 FOR EACH ROW
2049 EXECUTE PROCEDURE public.phenotype_cvterm_audit_trig();
2051 CREATE TABLE audit.phenotypeprop_audit(
2052 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2053 operation VARCHAR(10) NOT NULL,
2054 username TEXT NOT NULL DEFAULT "current_user"(),
2055 logged_in_user INT,
2056 before JSONB,
2057 after JSONB,
2058 transactioncode VARCHAR(40),
2059 phenotypeprop_audit_id SERIAL PRIMARY KEY,
2060 is_undo BOOLEAN
2063 ALTER TABLE audit.phenotypeprop_audit OWNER TO web_usr;
2065 CREATE OR REPLACE FUNCTION public.phenotypeprop_audit_trig()
2066 RETURNS trigger
2067 LANGUAGE plpgsql
2068 AS \$function\$
2069 BEGIN
2071 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2073 IF TG_OP = 'INSERT'
2074 THEN
2075 INSERT INTO audit.phenotypeprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
2076 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2077 RETURN NEW;
2079 ELSIF TG_OP = 'UPDATE'
2080 THEN
2081 IF NEW != OLD THEN
2082 INSERT INTO audit.phenotypeprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2083 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2084 END IF;
2085 RETURN NEW;
2087 ELSIF TG_OP = 'DELETE'
2088 THEN
2089 INSERT INTO audit.phenotypeprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
2090 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2091 RETURN OLD;
2092 END IF;
2093 END;
2094 \$function\$ ;
2096 CREATE TRIGGER phenotypeprop_audit_trig
2097 BEFORE INSERT OR UPDATE OR DELETE
2098 ON public.phenotypeprop
2099 FOR EACH ROW
2100 EXECUTE PROCEDURE public.phenotypeprop_audit_trig();
2102 CREATE TABLE audit.project_audit(
2103 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2104 operation VARCHAR(10) NOT NULL,
2105 username TEXT NOT NULL DEFAULT "current_user"(),
2106 logged_in_user INT,
2107 before JSONB,
2108 after JSONB,
2109 transactioncode VARCHAR(40),
2110 project_audit_id SERIAL PRIMARY KEY,
2111 is_undo BOOLEAN
2114 ALTER TABLE audit.project_audit OWNER TO web_usr;
2116 CREATE OR REPLACE FUNCTION public.project_audit_trig()
2117 RETURNS trigger
2118 LANGUAGE plpgsql
2119 AS \$function\$
2120 BEGIN
2122 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2124 IF TG_OP = 'INSERT'
2125 THEN
2126 INSERT INTO audit.project_audit (logged_in_user, operation, after, transactioncode, is_undo)
2127 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2128 RETURN NEW;
2130 ELSIF TG_OP = 'UPDATE'
2131 THEN
2132 IF NEW != OLD THEN
2133 INSERT INTO audit.project_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2134 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2135 END IF;
2136 RETURN NEW;
2138 ELSIF TG_OP = 'DELETE'
2139 THEN
2140 INSERT INTO audit.project_audit (logged_in_user, operation, before, transactioncode, is_undo)
2141 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2142 RETURN OLD;
2143 END IF;
2144 END;
2145 \$function\$ ;
2147 CREATE TRIGGER project_audit_trig
2148 BEFORE INSERT OR UPDATE OR DELETE
2149 ON public.project
2150 FOR EACH ROW
2151 EXECUTE PROCEDURE public.project_audit_trig();
2153 CREATE TABLE audit.project_contact_audit(
2154 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2155 operation VARCHAR(10) NOT NULL,
2156 username TEXT NOT NULL DEFAULT "current_user"(),
2157 logged_in_user INT,
2158 before JSONB,
2159 after JSONB,
2160 transactioncode VARCHAR(40),
2161 project_contact_audit_id SERIAL PRIMARY KEY,
2162 is_undo BOOLEAN
2165 ALTER TABLE audit.project_contact_audit OWNER TO web_usr;
2167 CREATE OR REPLACE FUNCTION public.project_contact_audit_trig()
2168 RETURNS trigger
2169 LANGUAGE plpgsql
2170 AS \$function\$
2171 BEGIN
2173 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2175 IF TG_OP = 'INSERT'
2176 THEN
2177 INSERT INTO audit.project_contact_audit (logged_in_user, operation, after, transactioncode, is_undo)
2178 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2179 RETURN NEW;
2181 ELSIF TG_OP = 'UPDATE'
2182 THEN
2183 IF NEW != OLD THEN
2184 INSERT INTO audit.project_contact_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2185 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2186 END IF;
2187 RETURN NEW;
2189 ELSIF TG_OP = 'DELETE'
2190 THEN
2191 INSERT INTO audit.project_contact_audit (logged_in_user, operation, before, transactioncode, is_undo)
2192 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2193 RETURN OLD;
2194 END IF;
2195 END;
2196 \$function\$ ;
2198 CREATE TRIGGER project_contact_audit_trig
2199 BEFORE INSERT OR UPDATE OR DELETE
2200 ON public.project_contact
2201 FOR EACH ROW
2202 EXECUTE PROCEDURE public.project_contact_audit_trig();
2204 CREATE TABLE audit.project_pub_audit(
2205 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2206 operation VARCHAR(10) NOT NULL,
2207 username TEXT NOT NULL DEFAULT "current_user"(),
2208 logged_in_user INT,
2209 before JSONB,
2210 after JSONB,
2211 transactioncode VARCHAR(40),
2212 project_pub_audit_id SERIAL PRIMARY KEY,
2213 is_undo BOOLEAN
2216 ALTER TABLE audit.project_pub_audit OWNER TO web_usr;
2218 CREATE OR REPLACE FUNCTION public.project_pub_audit_trig()
2219 RETURNS trigger
2220 LANGUAGE plpgsql
2221 AS \$function\$
2222 BEGIN
2224 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2225 IF TG_OP = 'INSERT'
2226 THEN
2227 INSERT INTO audit.project_pub_audit (logged_in_user, operation, after, transactioncode, is_undo)
2228 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2229 RETURN NEW;
2231 ELSIF TG_OP = 'UPDATE'
2232 THEN
2233 IF NEW != OLD THEN
2234 INSERT INTO audit.project_pub_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2235 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2236 END IF;
2237 RETURN NEW;
2239 ELSIF TG_OP = 'DELETE'
2240 THEN
2241 INSERT INTO audit.project_pub_audit (logged_in_user, operation, before, transactioncode, is_undo)
2242 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2243 RETURN OLD;
2244 END IF;
2245 END;
2246 \$function\$ ;
2248 CREATE TRIGGER project_pub_audit_trig
2249 BEFORE INSERT OR UPDATE OR DELETE
2250 ON public.project_pub
2251 FOR EACH ROW
2252 EXECUTE PROCEDURE public.project_pub_audit_trig();
2254 CREATE TABLE audit.project_relationship_audit(
2255 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2256 operation VARCHAR(10) NOT NULL,
2257 username TEXT NOT NULL DEFAULT "current_user"(),
2258 logged_in_user INT,
2259 before JSONB,
2260 after JSONB,
2261 transactioncode VARCHAR(40),
2262 project_relationship_audit_id SERIAL PRIMARY KEY,
2263 is_undo BOOLEAN
2266 ALTER TABLE audit.project_relationship_audit OWNER TO web_usr;
2268 CREATE OR REPLACE FUNCTION public.project_relationship_audit_trig()
2269 RETURNS trigger
2270 LANGUAGE plpgsql
2271 AS \$function\$
2272 BEGIN
2274 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2276 IF TG_OP = 'INSERT'
2277 THEN
2278 INSERT INTO audit.project_relationship_audit (logged_in_user, operation, after, transactioncode, is_undo)
2279 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2280 RETURN NEW;
2282 ELSIF TG_OP = 'UPDATE'
2283 THEN
2284 IF NEW != OLD THEN
2285 INSERT INTO audit.project_relationship_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2286 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2287 END IF;
2288 RETURN NEW;
2290 ELSIF TG_OP = 'DELETE'
2291 THEN
2292 INSERT INTO audit.project_relationship_audit (logged_in_user, operation, before, transactioncode, is_undo)
2293 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2294 RETURN OLD;
2295 END IF;
2296 END;
2297 \$function\$ ;
2299 CREATE TRIGGER project_relationship_audit_trig
2300 BEFORE INSERT OR UPDATE OR DELETE
2301 ON public.project_relationship
2302 FOR EACH ROW
2303 EXECUTE PROCEDURE public.project_relationship_audit_trig();
2305 CREATE TABLE audit.projectprop_audit(
2306 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2307 operation VARCHAR(10) NOT NULL,
2308 username TEXT NOT NULL DEFAULT "current_user"(),
2309 logged_in_user INT,
2310 before JSONB,
2311 after JSONB,
2312 transactioncode VARCHAR(40),
2313 projectprop_audit_id SERIAL PRIMARY KEY,
2314 is_undo BOOLEAN
2317 ALTER TABLE audit.projectprop_audit OWNER TO web_usr;
2319 CREATE OR REPLACE FUNCTION public.projectprop_audit_trig()
2320 RETURNS trigger
2321 LANGUAGE plpgsql
2322 AS \$function\$
2323 BEGIN
2325 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2327 IF TG_OP = 'INSERT'
2328 THEN
2329 INSERT INTO audit.projectprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
2330 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2331 RETURN NEW;
2333 ELSIF TG_OP = 'UPDATE'
2334 THEN
2335 IF NEW != OLD THEN
2336 INSERT INTO audit.projectprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2337 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2338 END IF;
2339 RETURN NEW;
2341 ELSIF TG_OP = 'DELETE'
2342 THEN
2343 INSERT INTO audit.projectprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
2344 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2345 RETURN OLD;
2346 END IF;
2347 END;
2348 \$function\$ ;
2350 CREATE TRIGGER projectprop_audit_trig
2351 BEFORE INSERT OR UPDATE OR DELETE
2352 ON public.projectprop
2353 FOR EACH ROW
2354 EXECUTE PROCEDURE public.projectprop_audit_trig();
2356 CREATE TABLE audit.pub_audit(
2357 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2358 operation VARCHAR(10) NOT NULL,
2359 username TEXT NOT NULL DEFAULT "current_user"(),
2360 logged_in_user INT,
2361 before JSONB,
2362 after JSONB,
2363 transactioncode VARCHAR(40),
2364 pub_audit_id SERIAL PRIMARY KEY,
2365 is_undo BOOLEAN
2368 ALTER TABLE audit.pub_audit OWNER TO web_usr;
2370 CREATE OR REPLACE FUNCTION public.pub_audit_trig()
2371 RETURNS trigger
2372 LANGUAGE plpgsql
2373 AS \$function\$
2374 BEGIN
2376 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2378 IF TG_OP = 'INSERT'
2379 THEN
2380 INSERT INTO audit.pub_audit (logged_in_user, operation, after, transactioncode, is_undo)
2381 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2382 RETURN NEW;
2384 ELSIF TG_OP = 'UPDATE'
2385 THEN
2386 IF NEW != OLD THEN
2387 INSERT INTO audit.pub_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2388 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2389 END IF;
2390 RETURN NEW;
2392 ELSIF TG_OP = 'DELETE'
2393 THEN
2394 INSERT INTO audit.pub_audit (logged_in_user, operation, before, transactioncode, is_undo)
2395 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2396 RETURN OLD;
2397 END IF;
2398 END;
2399 \$function\$ ;
2401 CREATE TRIGGER pub_audit_trig
2402 BEFORE INSERT OR UPDATE OR DELETE
2403 ON public.pub
2404 FOR EACH ROW
2405 EXECUTE PROCEDURE public.pub_audit_trig();
2407 CREATE TABLE audit.pub_dbxref_audit(
2408 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2409 operation VARCHAR(10) NOT NULL,
2410 username TEXT NOT NULL DEFAULT "current_user"(),
2411 logged_in_user INT,
2412 before JSONB,
2413 after JSONB,
2414 transactioncode VARCHAR(40),
2415 pub_dbxref_audit_id SERIAL PRIMARY KEY,
2416 is_undo BOOLEAN
2419 ALTER TABLE audit.pub_dbxref_audit OWNER TO web_usr;
2421 CREATE OR REPLACE FUNCTION public.pub_dbxref_audit_trig()
2422 RETURNS trigger
2423 LANGUAGE plpgsql
2424 AS \$function\$
2425 BEGIN
2427 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2429 IF TG_OP = 'INSERT'
2430 THEN
2431 INSERT INTO audit.pub_dbxref_audit (logged_in_user, operation, after, transactioncode, is_undo)
2432 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2433 RETURN NEW;
2435 ELSIF TG_OP = 'UPDATE'
2436 THEN
2437 IF NEW != OLD THEN
2438 INSERT INTO audit.pub_dbxref_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2439 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2440 END IF;
2441 RETURN NEW;
2443 ELSIF TG_OP = 'DELETE'
2444 THEN
2445 INSERT INTO audit.pub_dbxref_audit (logged_in_user, operation, before, transactioncode, is_undo)
2446 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2447 RETURN OLD;
2448 END IF;
2449 END;
2450 \$function\$ ;
2452 CREATE TRIGGER pub_dbxref_audit_trig
2453 BEFORE INSERT OR UPDATE OR DELETE
2454 ON public.pub_dbxref
2455 FOR EACH ROW
2456 EXECUTE PROCEDURE public.pub_dbxref_audit_trig();
2458 CREATE TABLE audit.pub_relationship_audit(
2459 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2460 operation VARCHAR(10) NOT NULL,
2461 username TEXT NOT NULL DEFAULT "current_user"(),
2462 logged_in_user INT,
2463 before JSONB,
2464 after JSONB,
2465 transactioncode VARCHAR(40),
2466 pub_relationship_audit_id SERIAL PRIMARY KEY,
2467 is_undo BOOLEAN
2470 ALTER TABLE audit.pub_relationship_audit OWNER TO web_usr;
2472 CREATE OR REPLACE FUNCTION public.pub_relationship_audit_trig()
2473 RETURNS trigger
2474 LANGUAGE plpgsql
2475 AS \$function\$
2476 BEGIN
2478 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2480 IF TG_OP = 'INSERT'
2481 THEN
2482 INSERT INTO audit.pub_relationship_audit (logged_in_user, operation, after, transactioncode, is_undo)
2483 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2484 RETURN NEW;
2486 ELSIF TG_OP = 'UPDATE'
2487 THEN
2488 IF NEW != OLD THEN
2489 INSERT INTO audit.pub_relationship_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2490 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2491 END IF;
2492 RETURN NEW;
2494 ELSIF TG_OP = 'DELETE'
2495 THEN
2496 INSERT INTO audit.pub_relationship_audit (logged_in_user, operation, before, transactioncode, is_undo)
2497 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2498 RETURN OLD;
2499 END IF;
2500 END;
2501 \$function\$ ;
2503 CREATE TRIGGER pub_relationship_audit_trig
2504 BEFORE INSERT OR UPDATE OR DELETE
2505 ON public.pub_relationship
2506 FOR EACH ROW
2507 EXECUTE PROCEDURE public.pub_relationship_audit_trig();
2509 CREATE TABLE audit.pubabstract_audit(
2510 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2511 operation VARCHAR(10) NOT NULL,
2512 username TEXT NOT NULL DEFAULT "current_user"(),
2513 logged_in_user INT,
2514 before JSONB,
2515 after JSONB,
2516 transactioncode VARCHAR(40),
2517 pubabstract_audit_id SERIAL PRIMARY KEY,
2518 is_undo BOOLEAN
2521 ALTER TABLE audit.pubabstract_audit OWNER TO web_usr;
2523 CREATE OR REPLACE FUNCTION public.pubabstract_audit_trig()
2524 RETURNS trigger
2525 LANGUAGE plpgsql
2526 AS \$function\$
2527 BEGIN
2529 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2531 IF TG_OP = 'INSERT'
2532 THEN
2533 INSERT INTO audit.pubabstract_audit (logged_in_user, operation, after, transactioncode, is_undo)
2534 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2535 RETURN NEW;
2537 ELSIF TG_OP = 'UPDATE'
2538 THEN
2539 IF NEW != OLD THEN
2540 INSERT INTO audit.pubabstract_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2541 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2542 END IF;
2543 RETURN NEW;
2545 ELSIF TG_OP = 'DELETE'
2546 THEN
2547 INSERT INTO audit.pubabstract_audit (logged_in_user, operation, before, transactioncode, is_undo)
2548 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2549 RETURN OLD;
2550 END IF;
2551 END;
2552 \$function\$ ;
2554 CREATE TRIGGER pubabstract_audit_trig
2555 BEFORE INSERT OR UPDATE OR DELETE
2556 ON public.pubabstract
2557 FOR EACH ROW
2558 EXECUTE PROCEDURE public.pubabstract_audit_trig();
2560 CREATE TABLE audit.pubauthor_audit(
2561 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2562 operation VARCHAR(10) NOT NULL,
2563 username TEXT NOT NULL DEFAULT "current_user"(),
2564 logged_in_user INT,
2565 before JSONB,
2566 after JSONB,
2567 transactioncode VARCHAR(40),
2568 pubauthor_audit_id SERIAL PRIMARY KEY,
2569 is_undo BOOLEAN
2572 ALTER TABLE audit.pubauthor_audit OWNER TO web_usr;
2574 CREATE OR REPLACE FUNCTION public.pubauthor_audit_trig()
2575 RETURNS trigger
2576 LANGUAGE plpgsql
2577 AS \$function\$
2578 BEGIN
2580 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2582 IF TG_OP = 'INSERT'
2583 THEN
2584 INSERT INTO audit.pubauthor_audit (logged_in_user, operation, after, transactioncode, is_undo)
2585 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2586 RETURN NEW;
2588 ELSIF TG_OP = 'UPDATE'
2589 THEN
2590 IF NEW != OLD THEN
2591 INSERT INTO audit.pubauthor_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2592 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2593 END IF;
2594 RETURN NEW;
2596 ELSIF TG_OP = 'DELETE'
2597 THEN
2598 INSERT INTO audit.pubauthor_audit (logged_in_user, operation, before, transactioncode, is_undo)
2599 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2600 RETURN OLD;
2601 END IF;
2602 END;
2603 \$function\$ ;
2605 CREATE TRIGGER pubauthor_audit_trig
2606 BEFORE INSERT OR UPDATE OR DELETE
2607 ON public.pubauthor
2608 FOR EACH ROW
2609 EXECUTE PROCEDURE public.pubauthor_audit_trig();
2611 CREATE TABLE audit.pubprop_audit(
2612 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2613 operation VARCHAR(10) NOT NULL,
2614 username TEXT NOT NULL DEFAULT "current_user"(),
2615 logged_in_user INT,
2616 before JSONB,
2617 after JSONB,
2618 transactioncode VARCHAR(40),
2619 pubprop_audit_id SERIAL PRIMARY KEY,
2620 is_undo BOOLEAN
2623 ALTER TABLE audit.pubprop_audit OWNER TO web_usr;
2625 CREATE OR REPLACE FUNCTION public.pubprop_audit_trig()
2626 RETURNS trigger
2627 LANGUAGE plpgsql
2628 AS \$function\$
2629 BEGIN
2631 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2633 IF TG_OP = 'INSERT'
2634 THEN
2635 INSERT INTO audit.pubprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
2636 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2637 RETURN NEW;
2639 ELSIF TG_OP = 'UPDATE'
2640 THEN
2641 IF NEW != OLD THEN
2642 INSERT INTO audit.pubprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2643 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2644 END IF;
2645 RETURN NEW;
2647 ELSIF TG_OP = 'DELETE'
2648 THEN
2649 INSERT INTO audit.pubprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
2650 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2651 RETURN OLD;
2652 END IF;
2653 END;
2654 \$function\$ ;
2656 CREATE TRIGGER pubprop_audit_trig
2657 BEFORE INSERT OR UPDATE OR DELETE
2658 ON public.pubprop
2659 FOR EACH ROW
2660 EXECUTE PROCEDURE public.pubprop_audit_trig();
2662 CREATE TABLE audit.stock_audit(
2663 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2664 operation VARCHAR(10) NOT NULL,
2665 username TEXT NOT NULL DEFAULT "current_user"(),
2666 logged_in_user INT,
2667 before JSONB,
2668 after JSONB,
2669 transactioncode VARCHAR(40),
2670 stock_audit_id SERIAL PRIMARY KEY,
2671 is_undo BOOLEAN
2674 ALTER TABLE audit.stock_audit OWNER TO web_usr;
2676 CREATE OR REPLACE FUNCTION public.stock_audit_trig()
2677 RETURNS trigger
2678 LANGUAGE plpgsql
2679 AS \$function\$
2680 BEGIN
2682 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2684 IF TG_OP = 'INSERT'
2685 THEN
2686 INSERT INTO audit.stock_audit (logged_in_user, operation, after, transactioncode, is_undo)
2687 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2688 RETURN NEW;
2690 ELSIF TG_OP = 'UPDATE'
2691 THEN
2692 IF NEW != OLD THEN
2693 INSERT INTO audit.stock_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2694 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2695 END IF;
2696 RETURN NEW;
2698 ELSIF TG_OP = 'DELETE'
2699 THEN
2700 INSERT INTO audit.stock_audit (logged_in_user, operation, before, transactioncode, is_undo)
2701 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2702 RETURN OLD;
2703 END IF;
2704 END;
2705 \$function\$ ;
2707 CREATE TRIGGER stock_audit_trig
2708 BEFORE INSERT OR UPDATE OR DELETE
2709 ON public.stock
2710 FOR EACH ROW
2711 EXECUTE PROCEDURE public.stock_audit_trig();
2713 CREATE TABLE audit.stock_cvterm_audit(
2714 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2715 operation VARCHAR(10) NOT NULL,
2716 username TEXT NOT NULL DEFAULT "current_user"(),
2717 logged_in_user INT,
2718 before JSONB,
2719 after JSONB,
2720 transactioncode VARCHAR(40),
2721 stock_cvterm_id SERIAL PRIMARY KEY,
2722 is_undo BOOLEAN
2725 ALTER TABLE audit.stock_cvterm_audit OWNER TO web_usr;
2727 CREATE OR REPLACE FUNCTION public.stock_cvterm_audit_trig()
2728 RETURNS trigger
2729 LANGUAGE plpgsql
2730 AS \$function\$
2731 BEGIN
2733 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2735 IF TG_OP = 'INSERT'
2736 THEN
2737 INSERT INTO audit.stock_cvterm_audit (logged_in_user, operation, after, transactioncode, is_undo)
2738 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2739 RETURN NEW;
2741 ELSIF TG_OP = 'UPDATE'
2742 THEN
2743 IF NEW != OLD THEN
2744 INSERT INTO audit.stock_cvterm_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2745 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2746 END IF;
2747 RETURN NEW;
2749 ELSIF TG_OP = 'DELETE'
2750 THEN
2751 INSERT INTO audit.stock_cvterm_audit (logged_in_user, operation, before, transactioncode, is_undo)
2752 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2753 RETURN OLD;
2754 END IF;
2755 END;
2756 \$function\$ ;
2758 CREATE TRIGGER stock_cvterm_audit_trig
2759 BEFORE INSERT OR UPDATE OR DELETE
2760 ON public.stock_cvterm
2761 FOR EACH ROW
2762 EXECUTE PROCEDURE public.stock_cvterm_audit_trig();
2764 CREATE TABLE audit.stock_cvtermprop_audit(
2765 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2766 operation VARCHAR(10) NOT NULL,
2767 username TEXT NOT NULL DEFAULT "current_user"(),
2768 logged_in_user INT,
2769 before JSONB,
2770 after JSONB,
2771 transactioncode VARCHAR(40),
2772 stock_cvtermprop_audit_id SERIAL PRIMARY KEY,
2773 is_undo BOOLEAN
2776 ALTER TABLE audit.stock_cvtermprop_audit OWNER TO web_usr;
2778 CREATE OR REPLACE FUNCTION public.stock_cvtermprop_audit_trig()
2779 RETURNS trigger
2780 LANGUAGE plpgsql
2781 AS \$function\$
2782 BEGIN
2784 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2786 IF TG_OP = 'INSERT'
2787 THEN
2788 INSERT INTO audit.stock_cvtermprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
2789 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2790 RETURN NEW;
2792 ELSIF TG_OP = 'UPDATE'
2793 THEN
2794 IF NEW != OLD THEN
2795 INSERT INTO audit.stock_cvtermprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2796 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2797 END IF;
2798 RETURN NEW;
2800 ELSIF TG_OP = 'DELETE'
2801 THEN
2802 INSERT INTO audit.stock_cvtermprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
2803 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2804 RETURN OLD;
2805 END IF;
2806 END;
2807 \$function\$ ;
2809 CREATE TRIGGER stock_cvtermprop_audit_trig
2810 BEFORE INSERT OR UPDATE OR DELETE
2811 ON public.stock_cvtermprop
2812 FOR EACH ROW
2813 EXECUTE PROCEDURE public.stock_cvtermprop_audit_trig();
2815 CREATE TABLE audit.stock_dbxref_audit(
2816 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2817 operation VARCHAR(10) NOT NULL,
2818 username TEXT NOT NULL DEFAULT "current_user"(),
2819 logged_in_user INT,
2820 before JSONB,
2821 after JSONB,
2822 transactioncode VARCHAR(40),
2823 stock_dbxref_audit_id SERIAL PRIMARY KEY,
2824 is_undo BOOLEAN
2827 ALTER TABLE audit.stock_dbxref_audit OWNER TO web_usr;
2829 CREATE OR REPLACE FUNCTION public.stock_dbxref_audit_trig()
2830 RETURNS trigger
2831 LANGUAGE plpgsql
2832 AS \$function\$
2833 BEGIN
2835 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2837 IF TG_OP = 'INSERT'
2838 THEN
2839 INSERT INTO audit.stock_dbxref_audit (logged_in_user, operation, after, transactioncode, is_undo)
2840 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2841 RETURN NEW;
2843 ELSIF TG_OP = 'UPDATE'
2844 THEN
2845 IF NEW != OLD THEN
2846 INSERT INTO audit.stock_dbxref_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2847 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2848 END IF;
2849 RETURN NEW;
2851 ELSIF TG_OP = 'DELETE'
2852 THEN
2853 INSERT INTO audit.stock_dbxref_audit (logged_in_user, operation, before, transactioncode, is_undo)
2854 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2855 RETURN OLD;
2856 END IF;
2857 END;
2858 \$function\$ ;
2860 CREATE TRIGGER stock_dbxref_audit_trig
2861 BEFORE INSERT OR UPDATE OR DELETE
2862 ON public.stock_dbxref
2863 FOR EACH ROW
2864 EXECUTE PROCEDURE public.stock_dbxref_audit_trig();
2866 CREATE TABLE audit.stock_dbxrefprop_audit(
2867 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2868 operation VARCHAR(10) NOT NULL,
2869 username TEXT NOT NULL DEFAULT "current_user"(),
2870 logged_in_user INT,
2871 before JSONB,
2872 after JSONB,
2873 transactioncode VARCHAR(40),
2874 stock_dbxrefprop_audit_id SERIAL PRIMARY KEY,
2875 is_undo BOOLEAN
2878 ALTER TABLE audit.stock_dbxrefprop_audit OWNER TO web_usr;
2880 CREATE OR REPLACE FUNCTION public.stock_dbxrefprop_audit_trig()
2881 RETURNS trigger
2882 LANGUAGE plpgsql
2883 AS \$function\$
2884 BEGIN
2886 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2888 IF TG_OP = 'INSERT'
2889 THEN
2890 INSERT INTO audit.stock_dbxrefprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
2891 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2892 RETURN NEW;
2894 ELSIF TG_OP = 'UPDATE'
2895 THEN
2896 IF NEW != OLD THEN
2897 INSERT INTO audit.stock_dbxrefprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2898 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2899 END IF;
2900 RETURN NEW;
2902 ELSIF TG_OP = 'DELETE'
2903 THEN
2904 INSERT INTO audit.stock_dbxrefprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
2905 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2906 RETURN OLD;
2907 END IF;
2908 END;
2909 \$function\$ ;
2911 CREATE TRIGGER stock_dbxrefprop_audit_trig
2912 BEFORE INSERT OR UPDATE OR DELETE
2913 ON public.stock_dbxrefprop
2914 FOR EACH ROW
2915 EXECUTE PROCEDURE public.stock_dbxrefprop_audit_trig();
2917 CREATE TABLE audit.stock_genotype_audit(
2918 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2919 operation VARCHAR(10) NOT NULL,
2920 username TEXT NOT NULL DEFAULT "current_user"(),
2921 logged_in_user INT,
2922 before JSONB,
2923 after JSONB,
2924 transactioncode VARCHAR(40),
2925 stock_genotype_audit_id SERIAL PRIMARY KEY,
2926 is_undo BOOLEAN
2929 ALTER TABLE audit.stock_genotype_audit OWNER TO web_usr;
2931 CREATE OR REPLACE FUNCTION public.stock_genotype_audit_trig()
2932 RETURNS trigger
2933 LANGUAGE plpgsql
2934 AS \$function\$
2935 BEGIN
2937 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2939 IF TG_OP = 'INSERT'
2940 THEN
2941 INSERT INTO audit.stock_genotype_audit (logged_in_user, operation, after, transactioncode, is_undo)
2942 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2943 RETURN NEW;
2945 ELSIF TG_OP = 'UPDATE'
2946 THEN
2947 IF NEW != OLD THEN
2948 INSERT INTO audit.stock_genotype_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
2949 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2950 END IF;
2951 RETURN NEW;
2953 ELSIF TG_OP = 'DELETE'
2954 THEN
2955 INSERT INTO audit.stock_genotype_audit (logged_in_user, operation, before, transactioncode, is_undo)
2956 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
2957 RETURN OLD;
2958 END IF;
2959 END;
2960 \$function\$ ;
2962 CREATE TRIGGER stock_genotype_audit_trig
2963 BEFORE INSERT OR UPDATE OR DELETE
2964 ON public.stock_genotype
2965 FOR EACH ROW
2966 EXECUTE PROCEDURE public.stock_genotype_audit_trig();
2968 CREATE TABLE audit.stock_pub_audit(
2969 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
2970 operation VARCHAR(10) NOT NULL,
2971 username TEXT NOT NULL DEFAULT "current_user"(),
2972 logged_in_user INT,
2973 before JSONB,
2974 after JSONB,
2975 transactioncode VARCHAR(40),
2976 stock_pub_audit_id SERIAL PRIMARY KEY,
2977 is_undo BOOLEAN
2980 ALTER TABLE audit.stock_pub_audit OWNER TO web_usr;
2982 CREATE OR REPLACE FUNCTION public.stock_pub_audit_trig()
2983 RETURNS trigger
2984 LANGUAGE plpgsql
2985 AS \$function\$
2986 BEGIN
2988 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
2990 IF TG_OP = 'INSERT'
2991 THEN
2992 INSERT INTO audit.stock_pub_audit (logged_in_user, operation, after, transactioncode, is_undo)
2993 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
2994 RETURN NEW;
2996 ELSIF TG_OP = 'UPDATE'
2997 THEN
2998 IF NEW != OLD THEN
2999 INSERT INTO audit.stock_pub_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3000 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3001 END IF;
3002 RETURN NEW;
3004 ELSIF TG_OP = 'DELETE'
3005 THEN
3006 INSERT INTO audit.stock_pub_audit (logged_in_user, operation, before, transactioncode, is_undo)
3007 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3008 RETURN OLD;
3009 END IF;
3010 END;
3011 \$function\$ ;
3013 CREATE TRIGGER stock_pub_audit_trig
3014 BEFORE INSERT OR UPDATE OR DELETE
3015 ON public.stock_pub
3016 FOR EACH ROW
3017 EXECUTE PROCEDURE public.stock_pub_audit_trig();
3019 CREATE TABLE audit.stock_relationship_audit(
3020 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3021 operation VARCHAR(10) NOT NULL,
3022 username TEXT NOT NULL DEFAULT "current_user"(),
3023 logged_in_user INT,
3024 before JSONB,
3025 after JSONB,
3026 transactioncode VARCHAR(40),
3027 stock_relationship_audit_id SERIAL PRIMARY KEY,
3028 is_undo BOOLEAN
3031 ALTER TABLE audit.stock_relationship_audit OWNER TO web_usr;
3033 CREATE OR REPLACE FUNCTION public.stock_relationship_audit_trig()
3034 RETURNS trigger
3035 LANGUAGE plpgsql
3036 AS \$function\$
3037 BEGIN
3039 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3041 IF TG_OP = 'INSERT'
3042 THEN
3043 INSERT INTO audit.stock_relationship_audit (logged_in_user, operation, after, transactioncode, is_undo)
3044 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3045 RETURN NEW;
3047 ELSIF TG_OP = 'UPDATE'
3048 THEN
3049 IF NEW != OLD THEN
3050 INSERT INTO audit.stock_relationship_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3051 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3052 END IF;
3053 RETURN NEW;
3055 ELSIF TG_OP = 'DELETE'
3056 THEN
3057 INSERT INTO audit.stock_relationship_audit (logged_in_user, operation, before, transactioncode, is_undo)
3058 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3059 RETURN OLD;
3060 END IF;
3061 END;
3062 \$function\$ ;
3064 CREATE TRIGGER stock_relationship_audit_trig
3065 BEFORE INSERT OR UPDATE OR DELETE
3066 ON public.stock_relationship
3067 FOR EACH ROW
3068 EXECUTE PROCEDURE public.stock_relationship_audit_trig();
3070 CREATE TABLE audit.stock_relationship_cvterm_audit(
3071 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3072 operation VARCHAR(10) NOT NULL,
3073 username TEXT NOT NULL DEFAULT "current_user"(),
3074 logged_in_user INT,
3075 before JSONB,
3076 after JSONB,
3077 transactioncode VARCHAR(40),
3078 stock_relationship_cvterm_audit_id SERIAL PRIMARY KEY,
3079 is_undo BOOLEAN
3082 ALTER TABLE audit.stock_relationship_cvterm_audit OWNER TO web_usr;
3084 CREATE OR REPLACE FUNCTION public.stock_relationship_cvterm_audit_trig()
3085 RETURNS trigger
3086 LANGUAGE plpgsql
3087 AS \$function\$
3088 BEGIN
3090 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3092 IF TG_OP = 'INSERT'
3093 THEN
3094 INSERT INTO audit.stock_relationship_cvterm_audit (logged_in_user, operation, after, transactioncode, is_undo)
3095 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3096 RETURN NEW;
3098 ELSIF TG_OP = 'UPDATE'
3099 THEN
3100 IF NEW != OLD THEN
3101 INSERT INTO audit.stock_relationship_cvterm_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3102 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3103 END IF;
3104 RETURN NEW;
3106 ELSIF TG_OP = 'DELETE'
3107 THEN
3108 INSERT INTO audit.stock_relationship_cvterm_audit (logged_in_user, operation, before, transactioncode, is_undo)
3109 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3110 RETURN OLD;
3111 END IF;
3112 END;
3113 \$function\$ ;
3115 CREATE TRIGGER stock_relationship_cvterm_audit_trig
3116 BEFORE INSERT OR UPDATE OR DELETE
3117 ON public.stock_relationship_cvterm
3118 FOR EACH ROW
3119 EXECUTE PROCEDURE public.stock_relationship_cvterm_audit_trig();
3121 CREATE TABLE audit.stock_relationship_pub_audit(
3122 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3123 operation VARCHAR(10) NOT NULL,
3124 username TEXT NOT NULL DEFAULT "current_user"(),
3125 logged_in_user INT,
3126 before JSONB,
3127 after JSONB,
3128 transactioncode VARCHAR(40),
3129 stock_relationship_pub_audit_id SERIAL PRIMARY KEY,
3130 is_undo BOOLEAN
3133 ALTER TABLE audit.stock_relationship_pub_audit OWNER TO web_usr;
3135 CREATE OR REPLACE FUNCTION public.stock_relationship_pub_audit_trig()
3136 RETURNS trigger
3137 LANGUAGE plpgsql
3138 AS \$function\$
3139 BEGIN
3141 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3143 IF TG_OP = 'INSERT'
3144 THEN
3145 INSERT INTO audit.stock_relationship_pub_audit (logged_in_user, operation, after, transactioncode, is_undo)
3146 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3147 RETURN NEW;
3149 ELSIF TG_OP = 'UPDATE'
3150 THEN
3151 IF NEW != OLD THEN
3152 INSERT INTO audit.stock_relationship_pub_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3153 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3154 END IF;
3155 RETURN NEW;
3157 ELSIF TG_OP = 'DELETE'
3158 THEN
3159 INSERT INTO audit.stock_relationship_pub_audit (logged_in_user, operation, before, transactioncode, is_undo)
3160 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3161 RETURN OLD;
3162 END IF;
3163 END;
3164 \$function\$ ;
3166 CREATE TRIGGER stock_relationship_pub_audit_trig
3167 BEFORE INSERT OR UPDATE OR DELETE
3168 ON public.stock_relationship_pub
3169 FOR EACH ROW
3170 EXECUTE PROCEDURE public.stock_relationship_pub_audit_trig();
3172 CREATE TABLE audit.stockcollection_audit(
3173 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3174 operation VARCHAR(10) NOT NULL,
3175 username TEXT NOT NULL DEFAULT "current_user"(),
3176 logged_in_user INT,
3177 before JSONB,
3178 after JSONB,
3179 transactioncode VARCHAR(40),
3180 stockcollection_audit_id SERIAL PRIMARY KEY,
3181 is_undo BOOLEAN
3184 ALTER TABLE audit.stockcollection_audit OWNER TO web_usr;
3186 CREATE OR REPLACE FUNCTION public.stockcollection_audit_trig()
3187 RETURNS trigger
3188 LANGUAGE plpgsql
3189 AS \$function\$
3190 BEGIN
3192 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3194 IF TG_OP = 'INSERT'
3195 THEN
3196 INSERT INTO audit.stockcollection_audit (logged_in_user, operation, after, transactioncode, is_undo)
3197 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3198 RETURN NEW;
3200 ELSIF TG_OP = 'UPDATE'
3201 THEN
3202 IF NEW != OLD THEN
3203 INSERT INTO audit.stockcollection_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3204 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3205 END IF;
3206 RETURN NEW;
3208 ELSIF TG_OP = 'DELETE'
3209 THEN
3210 INSERT INTO audit.stockcollection_audit (logged_in_user, operation, before, transactioncode, is_undo)
3211 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3212 RETURN OLD;
3213 END IF;
3214 END;
3215 \$function\$ ;
3217 CREATE TRIGGER stockcollection_audit_trig
3218 BEFORE INSERT OR UPDATE OR DELETE
3219 ON public.stockcollection
3220 FOR EACH ROW
3221 EXECUTE PROCEDURE public.stockcollection_audit_trig();
3223 CREATE TABLE audit.stockcollection_stock_audit(
3224 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3225 operation VARCHAR(10) NOT NULL,
3226 username TEXT NOT NULL DEFAULT "current_user"(),
3227 logged_in_user INT,
3228 before JSONB,
3229 after JSONB,
3230 transactioncode VARCHAR(40),
3231 stockcollection_stock_audit_id SERIAL PRIMARY KEY,
3232 is_undo BOOLEAN
3235 ALTER TABLE audit.stockcollection_stock_audit OWNER TO web_usr;
3237 CREATE OR REPLACE FUNCTION public.stockcollection_stock_audit_trig()
3238 RETURNS trigger
3239 LANGUAGE plpgsql
3240 AS \$function\$
3241 BEGIN
3243 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3245 IF TG_OP = 'INSERT'
3246 THEN
3247 INSERT INTO audit.stockcollection_stock_audit (logged_in_user, operation, after, transactioncode, is_undo)
3248 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3249 RETURN NEW;
3251 ELSIF TG_OP = 'UPDATE'
3252 THEN
3253 IF NEW != OLD THEN
3254 INSERT INTO audit.stockcollection_stock_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3255 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3256 END IF;
3257 RETURN NEW;
3259 ELSIF TG_OP = 'DELETE'
3260 THEN
3261 INSERT INTO audit.stockcollection_stock_audit (logged_in_user, operation, before, transactioncode, is_undo)
3262 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3263 RETURN OLD;
3264 END IF;
3265 END;
3266 \$function\$ ;
3268 CREATE TRIGGER stockcollection_stock_audit_trig
3269 BEFORE INSERT OR UPDATE OR DELETE
3270 ON public.stockcollection_stock
3271 FOR EACH ROW
3272 EXECUTE PROCEDURE public.stockcollection_stock_audit_trig();
3274 CREATE TABLE audit.stockcollectionprop_audit(
3275 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3276 operation VARCHAR(10) NOT NULL,
3277 username TEXT NOT NULL DEFAULT "current_user"(),
3278 logged_in_user INT,
3279 before JSONB,
3280 after JSONB,
3281 transactioncode VARCHAR(40),
3282 stockcollectionprop_audit_id SERIAL PRIMARY KEY,
3283 is_undo BOOLEAN
3286 ALTER TABLE audit.stockcollectionprop_audit OWNER TO web_usr;
3288 CREATE OR REPLACE FUNCTION public.stockcollectionprop_audit_trig()
3289 RETURNS trigger
3290 LANGUAGE plpgsql
3291 AS \$function\$
3292 BEGIN
3294 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3296 IF TG_OP = 'INSERT'
3297 THEN
3298 INSERT INTO audit.stockcollectionprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
3299 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3300 RETURN NEW;
3302 ELSIF TG_OP = 'UPDATE'
3303 THEN
3304 IF NEW != OLD THEN
3305 INSERT INTO audit.stockcollectionprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3306 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3307 END IF;
3308 RETURN NEW;
3310 ELSIF TG_OP = 'DELETE'
3311 THEN
3312 INSERT INTO audit.stockcollectionprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
3313 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3314 RETURN OLD;
3315 END IF;
3316 END;
3317 \$function\$ ;
3319 CREATE TRIGGER stockcollectionprop_audit_trig
3320 BEFORE INSERT OR UPDATE OR DELETE
3321 ON public.stockcollectionprop
3322 FOR EACH ROW
3323 EXECUTE PROCEDURE public.stockcollectionprop_audit_trig();
3325 CREATE TABLE audit.stockprop_audit(
3326 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3327 operation VARCHAR(10) NOT NULL,
3328 username TEXT NOT NULL DEFAULT "current_user"(),
3329 logged_in_user INT,
3330 before JSONB,
3331 after JSONB,
3332 transactioncode VARCHAR(40),
3333 stockprop_audit_id SERIAL PRIMARY KEY,
3334 is_undo BOOLEAN
3337 ALTER TABLE audit.stockprop_audit OWNER TO web_usr;
3339 CREATE OR REPLACE FUNCTION public.stockprop_audit_trig()
3340 RETURNS trigger
3341 LANGUAGE plpgsql
3342 AS \$function\$
3343 BEGIN
3345 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3347 IF TG_OP = 'INSERT'
3348 THEN
3349 INSERT INTO audit.stockprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
3350 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3351 RETURN NEW;
3353 ELSIF TG_OP = 'UPDATE'
3354 THEN
3355 IF NEW != OLD THEN
3356 INSERT INTO audit.stockprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3357 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3358 END IF;
3359 RETURN NEW;
3361 ELSIF TG_OP = 'DELETE'
3362 THEN
3363 INSERT INTO audit.stockprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
3364 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3365 RETURN OLD;
3366 END IF;
3367 END;
3368 \$function\$ ;
3370 CREATE TRIGGER stockprop_audit_trig
3371 BEFORE INSERT OR UPDATE OR DELETE
3372 ON public.stockprop
3373 FOR EACH ROW
3374 EXECUTE PROCEDURE public.stockprop_audit_trig();
3376 CREATE TABLE audit.stockprop_pub_audit(
3377 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3378 operation VARCHAR(10) NOT NULL,
3379 username TEXT NOT NULL DEFAULT "current_user"(),
3380 logged_in_user INT,
3381 before JSONB,
3382 after JSONB,
3383 transactioncode VARCHAR(40),
3384 stockprop_pub_audit_id SERIAL PRIMARY KEY,
3385 is_undo BOOLEAN
3388 ALTER TABLE audit.stockprop_pub_audit OWNER TO web_usr;
3390 CREATE OR REPLACE FUNCTION public.stockprop_pub_audit_trig()
3391 RETURNS trigger
3392 LANGUAGE plpgsql
3393 AS \$function\$
3394 BEGIN
3396 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3398 IF TG_OP = 'INSERT'
3399 THEN
3400 INSERT INTO audit.stockprop_pub_audit (logged_in_user, operation, after, transactioncode, is_undo)
3401 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3402 RETURN NEW;
3404 ELSIF TG_OP = 'UPDATE'
3405 THEN
3406 IF NEW != OLD THEN
3407 INSERT INTO audit.stockprop_pub_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3408 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3409 END IF;
3410 RETURN NEW;
3412 ELSIF TG_OP = 'DELETE'
3413 THEN
3414 INSERT INTO audit.stockprop_pub_audit (logged_in_user, operation, before, transactioncode, is_undo)
3415 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3416 RETURN OLD;
3417 END IF;
3418 END;
3419 \$function\$ ;
3421 CREATE TRIGGER stockprop_pub_audit_trig
3422 BEFORE INSERT OR UPDATE OR DELETE
3423 ON public.stockprop_pub
3424 FOR EACH ROW
3425 EXECUTE PROCEDURE public.stockprop_pub_audit_trig();
3427 CREATE TABLE audit.list_audit(
3428 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3429 operation VARCHAR(10) NOT NULL,
3430 username TEXT NOT NULL DEFAULT "current_user"(),
3431 logged_in_user INT,
3432 before JSONB,
3433 after JSONB,
3434 transactioncode VARCHAR(40),
3435 list_audit_id SERIAL PRIMARY KEY,
3436 is_undo BOOLEAN
3439 ALTER TABLE audit.list_audit OWNER TO web_usr;
3441 CREATE OR REPLACE FUNCTION sgn_people.list_audit_trig()
3442 RETURNS trigger
3443 LANGUAGE plpgsql
3444 AS \$function\$
3445 BEGIN
3447 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3449 IF TG_OP = 'INSERT'
3450 THEN
3451 INSERT INTO audit.list_audit (logged_in_user, operation, after, transactioncode, is_undo)
3452 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3453 RETURN NEW;
3455 ELSIF TG_OP = 'UPDATE'
3456 THEN
3457 IF NEW != OLD THEN
3458 INSERT INTO audit.list_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3459 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3460 END IF;
3461 RETURN NEW;
3463 ELSIF TG_OP = 'DELETE'
3464 THEN
3465 INSERT INTO audit.list_audit (logged_in_user, operation, before, transactioncode, is_undo)
3466 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3467 RETURN OLD;
3468 END IF;
3469 END;
3470 \$function\$ ;
3472 CREATE TRIGGER list_audit_trig
3473 BEFORE INSERT OR UPDATE OR DELETE
3474 ON sgn_people.list
3475 FOR EACH ROW
3476 EXECUTE PROCEDURE sgn_people.list_audit_trig();
3478 CREATE TABLE audit.list_item_audit(
3479 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3480 operation VARCHAR(10) NOT NULL,
3481 username TEXT NOT NULL DEFAULT "current_user"(),
3482 logged_in_user INT,
3483 before JSONB,
3484 after JSONB,
3485 transactioncode VARCHAR(40),
3486 list_item_audit_id SERIAL PRIMARY KEY,
3487 is_undo BOOLEAN
3490 ALTER TABLE audit.list_item_audit OWNER TO web_usr;
3492 CREATE OR REPLACE FUNCTION sgn_people.list_item_audit_trig()
3493 RETURNS trigger
3494 LANGUAGE plpgsql
3495 AS \$function\$
3496 BEGIN
3498 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3500 IF TG_OP = 'INSERT'
3501 THEN
3502 INSERT INTO audit.list_item_audit (logged_in_user, operation, after, transactioncode, is_undo)
3503 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3504 RETURN NEW;
3506 ELSIF TG_OP = 'UPDATE'
3507 THEN
3508 IF NEW != OLD THEN
3509 INSERT INTO audit.list_item_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3510 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3511 END IF;
3512 RETURN NEW;
3514 ELSIF TG_OP = 'DELETE'
3515 THEN
3516 INSERT INTO audit.list_item_audit (logged_in_user, operation, before, transactioncode, is_undo)
3517 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3518 RETURN OLD;
3519 END IF;
3520 END;
3521 \$function\$ ;
3523 CREATE TRIGGER list_item_audit_trig
3524 BEFORE INSERT OR UPDATE OR DELETE
3525 ON sgn_people.list_item
3526 FOR EACH ROW
3527 EXECUTE PROCEDURE sgn_people.list_item_audit_trig();
3529 CREATE TABLE audit.sp_dataset_audit(
3530 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3531 operation VARCHAR(10) NOT NULL,
3532 username TEXT NOT NULL DEFAULT "current_user"(),
3533 logged_in_user INT,
3534 before JSONB,
3535 after JSONB,
3536 transactioncode VARCHAR(40),
3537 sp_dataset_audit_id SERIAL PRIMARY KEY,
3538 is_undo BOOLEAN
3541 ALTER TABLE audit.sp_dataset_audit OWNER TO web_usr;
3543 CREATE OR REPLACE FUNCTION sgn_people.sp_dataset_audit_trig()
3544 RETURNS trigger
3545 LANGUAGE plpgsql
3546 AS \$function\$
3547 BEGIN
3549 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3551 IF TG_OP = 'INSERT'
3552 THEN
3553 INSERT INTO audit.sp_dataset_audit (logged_in_user, operation, after, transactioncode, is_undo)
3554 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3555 RETURN NEW;
3557 ELSIF TG_OP = 'UPDATE'
3558 THEN
3559 IF NEW != OLD THEN
3560 INSERT INTO audit.sp_dataset_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3561 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3562 END IF;
3563 RETURN NEW;
3565 ELSIF TG_OP = 'DELETE'
3566 THEN
3567 INSERT INTO audit.sp_dataset_audit (logged_in_user, operation, before, transactioncode, is_undo)
3568 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3569 RETURN OLD;
3570 END IF;
3571 END;
3572 \$function\$ ;
3574 CREATE TRIGGER sp_dataset_audit_trig
3575 BEFORE INSERT OR UPDATE OR DELETE
3576 ON sgn_people.sp_dataset
3577 FOR EACH ROW
3578 EXECUTE PROCEDURE sgn_people.sp_dataset_audit_trig();
3580 CREATE TABLE audit.sp_order_audit(
3581 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3582 operation VARCHAR(10) NOT NULL,
3583 username TEXT NOT NULL DEFAULT "current_user"(),
3584 logged_in_user INT,
3585 before JSONB,
3586 after JSONB,
3587 transactioncode VARCHAR(40),
3588 sp_order_audit_id SERIAL PRIMARY KEY,
3589 is_undo BOOLEAN
3592 ALTER TABLE audit.sp_order_audit OWNER TO web_usr;
3594 CREATE OR REPLACE FUNCTION sgn_people.sp_order_audit_trig()
3595 RETURNS trigger
3596 LANGUAGE plpgsql
3597 AS \$function\$
3598 BEGIN
3600 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3602 IF TG_OP = 'INSERT'
3603 THEN
3604 INSERT INTO audit.sp_order_audit (logged_in_user, operation, after, transactioncode, is_undo)
3605 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3606 RETURN NEW;
3608 ELSIF TG_OP = 'UPDATE'
3609 THEN
3610 IF NEW != OLD THEN
3611 INSERT INTO audit.sp_order_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3612 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3613 END IF;
3614 RETURN NEW;
3616 ELSIF TG_OP = 'DELETE'
3617 THEN
3618 INSERT INTO audit.sp_order_audit (logged_in_user, operation, before, transactioncode, is_undo)
3619 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3620 RETURN OLD;
3621 END IF;
3622 END;
3623 \$function\$ ;
3625 CREATE TRIGGER sp_order_audit_trig
3626 BEFORE INSERT OR UPDATE OR DELETE
3627 ON sgn_people.sp_order
3628 FOR EACH ROW
3629 EXECUTE PROCEDURE sgn_people.sp_order_audit_trig();
3631 CREATE TABLE audit.sp_orderprop_audit(
3632 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3633 operation VARCHAR(10) NOT NULL,
3634 username TEXT NOT NULL DEFAULT "current_user"(),
3635 logged_in_user INT,
3636 before JSONB,
3637 after JSONB,
3638 transactioncode VARCHAR(40),
3639 sp_orderprop_audit_id SERIAL PRIMARY KEY,
3640 is_undo BOOLEAN
3643 ALTER TABLE audit.sp_orderprop_audit OWNER TO web_usr;
3645 CREATE OR REPLACE FUNCTION sgn_people.sp_orderprop_audit_trig()
3646 RETURNS trigger
3647 LANGUAGE plpgsql
3648 AS \$function\$
3649 BEGIN
3651 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3653 IF TG_OP = 'INSERT'
3654 THEN
3655 INSERT INTO audit.sp_orderprop_audit (logged_in_user, operation, after, transactioncode, is_undo)
3656 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3657 RETURN NEW;
3659 ELSIF TG_OP = 'UPDATE'
3660 THEN
3661 IF NEW != OLD THEN
3662 INSERT INTO audit.sp_orderprop_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3663 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3664 END IF;
3665 RETURN NEW;
3667 ELSIF TG_OP = 'DELETE'
3668 THEN
3669 INSERT INTO audit.sp_orderprop_audit (logged_in_user, operation, before, transactioncode, is_undo)
3670 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3671 RETURN OLD;
3672 END IF;
3673 END;
3674 \$function\$ ;
3676 CREATE TRIGGER sp_orderprop_audit_trig
3677 BEFORE INSERT OR UPDATE OR DELETE
3678 ON sgn_people.sp_orderprop
3679 FOR EACH ROW
3680 EXECUTE PROCEDURE sgn_people.sp_orderprop_audit_trig();
3682 CREATE TABLE audit.sp_person_audit(
3683 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3684 operation VARCHAR(10) NOT NULL,
3685 username TEXT NOT NULL DEFAULT "current_user"(),
3686 logged_in_user INT,
3687 before JSONB,
3688 after JSONB,
3689 transactioncode VARCHAR(40),
3690 sp_person_audit_id SERIAL PRIMARY KEY,
3691 is_undo BOOLEAN
3694 ALTER TABLE audit.sp_person_audit OWNER TO web_usr;
3696 CREATE OR REPLACE FUNCTION sgn_people.sp_person_audit_trig()
3697 RETURNS trigger
3698 LANGUAGE plpgsql
3699 AS \$function\$
3700 BEGIN
3702 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3704 IF TG_OP = 'INSERT'
3705 THEN
3706 INSERT INTO audit.sp_person_audit (logged_in_user, operation, after, transactioncode, is_undo)
3707 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3708 RETURN NEW;
3710 ELSIF TG_OP = 'UPDATE'
3711 THEN
3712 IF NEW != OLD THEN
3713 INSERT INTO audit.sp_person_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3714 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3715 END IF;
3716 RETURN NEW;
3718 ELSIF TG_OP = 'DELETE'
3719 THEN
3720 INSERT INTO audit.sp_person_audit (logged_in_user, operation, before, transactioncode, is_undo)
3721 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3722 RETURN OLD;
3723 END IF;
3724 END;
3725 \$function\$ ;
3727 CREATE TRIGGER sp_person_audit_trig
3728 BEFORE INSERT OR UPDATE OR DELETE
3729 ON sgn_people.sp_person
3730 FOR EACH ROW
3731 EXECUTE PROCEDURE sgn_people.sp_person_audit_trig();
3733 CREATE TABLE audit.sp_roles_audit(
3734 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3735 operation VARCHAR(10) NOT NULL,
3736 username TEXT NOT NULL DEFAULT "current_user"(),
3737 logged_in_user INT,
3738 before JSONB,
3739 after JSONB,
3740 transactioncode VARCHAR(40),
3741 sp_roles_audit_id SERIAL PRIMARY KEY,
3742 is_undo BOOLEAN
3745 ALTER TABLE audit.sp_roles_audit OWNER TO web_usr;
3747 CREATE OR REPLACE FUNCTION sgn_people.sp_roles_audit_trig()
3748 RETURNS trigger
3749 LANGUAGE plpgsql
3750 AS \$function\$
3751 BEGIN
3753 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3755 IF TG_OP = 'INSERT'
3756 THEN
3757 INSERT INTO audit.sp_roles_audit (logged_in_user, operation, after, transactioncode, is_undo)
3758 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3759 RETURN NEW;
3761 ELSIF TG_OP = 'UPDATE'
3762 THEN
3763 IF NEW != OLD THEN
3764 INSERT INTO audit.sp_roles_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3765 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3766 END IF;
3767 RETURN NEW;
3769 ELSIF TG_OP = 'DELETE'
3770 THEN
3771 INSERT INTO audit.sp_roles_audit (logged_in_user, operation, before, transactioncode, is_undo)
3772 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3773 RETURN OLD;
3774 END IF;
3775 END;
3776 \$function\$ ;
3778 CREATE TRIGGER sp_roles_audit_trig
3779 BEFORE INSERT OR UPDATE OR DELETE
3780 ON sgn_people.sp_roles
3781 FOR EACH ROW
3782 EXECUTE PROCEDURE sgn_people.sp_roles_audit_trig();
3784 CREATE TABLE audit.sp_token_audit(
3785 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3786 operation VARCHAR(10) NOT NULL,
3787 username TEXT NOT NULL DEFAULT "current_user"(),
3788 logged_in_user INT,
3789 before JSONB,
3790 after JSONB,
3791 transactioncode VARCHAR(40),
3792 sp_token_audit_id SERIAL PRIMARY KEY,
3793 is_undo BOOLEAN
3796 ALTER TABLE audit.sp_token_audit OWNER TO web_usr;
3798 CREATE OR REPLACE FUNCTION sgn_people.sp_token_audit_trig()
3799 RETURNS trigger
3800 LANGUAGE plpgsql
3801 AS \$function\$
3802 BEGIN
3804 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3806 IF TG_OP = 'INSERT'
3807 THEN
3808 INSERT INTO audit.sp_token_audit (logged_in_user, operation, after, transactioncode, is_undo)
3809 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3810 RETURN NEW;
3812 ELSIF TG_OP = 'UPDATE'
3813 THEN
3814 IF NEW != OLD THEN
3815 INSERT INTO audit.sp_token_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3816 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3817 END IF;
3818 RETURN NEW;
3820 ELSIF TG_OP = 'DELETE'
3821 THEN
3822 INSERT INTO audit.sp_token_audit (logged_in_user, operation, before, transactioncode, is_undo)
3823 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3824 RETURN OLD;
3825 END IF;
3826 END;
3827 \$function\$ ;
3829 CREATE TRIGGER sp_token_audit_trig
3830 BEFORE INSERT OR UPDATE OR DELETE
3831 ON sgn_people.sp_token
3832 FOR EACH ROW
3833 EXECUTE PROCEDURE sgn_people.sp_token_audit_trig();
3835 CREATE TABLE audit.sp_person_roles_audit(
3836 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3837 operation VARCHAR(10) NOT NULL,
3838 username TEXT NOT NULL DEFAULT "current_user"(),
3839 logged_in_user INT,
3840 before JSONB,
3841 after JSONB,
3842 transactioncode VARCHAR(40),
3843 sp_person_roles_audit_id SERIAL PRIMARY KEY,
3844 is_undo BOOLEAN
3847 ALTER TABLE audit.sp_person_roles_audit OWNER TO web_usr;
3849 CREATE OR REPLACE FUNCTION sgn_people.sp_person_roles_audit_trig()
3850 RETURNS trigger
3851 LANGUAGE plpgsql
3852 AS \$function\$
3853 BEGIN
3855 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3857 IF TG_OP = 'INSERT'
3858 THEN
3859 INSERT INTO audit.sp_person_roles_audit (logged_in_user, operation, after, transactioncode, is_undo)
3860 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3861 RETURN NEW;
3863 ELSIF TG_OP = 'UPDATE'
3864 THEN
3865 IF NEW != OLD THEN
3866 INSERT INTO audit.sp_person_roles_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3867 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3868 END IF;
3869 RETURN NEW;
3871 ELSIF TG_OP = 'DELETE'
3872 THEN
3873 INSERT INTO audit.sp_person_roles_audit (logged_in_user, operation, before, transactioncode, is_undo)
3874 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3875 RETURN OLD;
3876 END IF;
3877 END;
3878 \$function\$ ;
3880 CREATE TRIGGER sp_person_roles_audit_trig
3881 BEFORE INSERT OR UPDATE OR DELETE
3882 ON sgn_people.sp_person_roles
3883 FOR EACH ROW
3884 EXECUTE PROCEDURE sgn_people.sp_person_roles_audit_trig();
3886 CREATE TABLE audit.sp_organization_audit(
3887 audit_ts TIMESTAMPTZ NOT NULL DEFAULT NOW(),
3888 operation VARCHAR(10) NOT NULL,
3889 username TEXT NOT NULL DEFAULT "current_user"(),
3890 logged_in_user INT,
3891 before JSONB,
3892 after JSONB,
3893 transactioncode VARCHAR(40),
3894 sp_organization_audit_id SERIAL PRIMARY KEY,
3895 is_undo BOOLEAN
3898 ALTER TABLE audit.sp_organization_audit OWNER TO web_usr;
3900 CREATE OR REPLACE FUNCTION sgn_people.sp_organization_audit_trig()
3901 RETURNS trigger
3902 LANGUAGE plpgsql
3903 AS \$function\$
3904 BEGIN
3906 CREATE TEMPORARY TABLE IF NOT EXISTS logged_in_user(sp_person_id bigint);
3908 IF TG_OP = 'INSERT'
3909 THEN
3910 INSERT INTO audit.sp_organization_audit (logged_in_user, operation, after, transactioncode, is_undo)
3911 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3912 RETURN NEW;
3914 ELSIF TG_OP = 'UPDATE'
3915 THEN
3916 IF NEW != OLD THEN
3917 INSERT INTO audit.sp_organization_audit (logged_in_user, operation, before, after, transactioncode, is_undo)
3918 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), to_jsonb(NEW), (SELECT NOW()::TEXT || txid_current()), FALSE);
3919 END IF;
3920 RETURN NEW;
3922 ELSIF TG_OP = 'DELETE'
3923 THEN
3924 INSERT INTO audit.sp_organization_audit (logged_in_user, operation, before, transactioncode, is_undo)
3925 VALUES ((SELECT max(sp_person_id) FROM logged_in_user WHERE sp_person_id IS NOT NULL), TG_OP, to_jsonb(OLD), (SELECT NOW()::TEXT || txid_current()), FALSE);
3926 RETURN OLD;
3927 END IF;
3928 END;
3929 \$function\$ ;
3931 CREATE TRIGGER sp_organization_audit_trig
3932 BEFORE INSERT OR UPDATE OR DELETE
3933 ON sgn_people.sp_organization
3934 FOR EACH ROW
3935 EXECUTE PROCEDURE sgn_people.sp_organization_audit_trig();
3939 EOSQL
3941 print "You're done!\n";
3945 ####
3946 1; #
3947 ####