comparison schema/gemma.sql @ 1193:58acc343b1b6

Implemented the db stuff of the review process. Needs testing.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 16 Nov 2018 18:35:09 +0100
parents e3de65179889
children 7db850de0952
comparison
equal deleted inserted replaced
1192:3afa71405b87 1193:58acc343b1b6
547 relation regclass NOT NULL, 547 relation regclass NOT NULL,
548 key int NOT NULL, 548 key int NOT NULL,
549 UNIQUE (relation, key) 549 UNIQUE (relation, key)
550 ); 550 );
551 551
552 CREATE FUNCTION waterway.del_import(imp_id int) RETURNS void AS
553 $$
554 DECLARE
555 tmp RECORD;
556 BEGIN
557 FOR tmp IN
558 SELECT * FROM waterway.track_imports WHERE import_id = imp_id
559 LOOP
560 EXECUTE format('DELETE FROM %s WHERE id = $1', tmp.relation) USING tmp.key;
561 END LOOP;
562 END;
563 $$
564 LANGUAGE plpgsql;
565
552 CREATE FUNCTION waterway.del_import() RETURNS trigger AS 566 CREATE FUNCTION waterway.del_import() RETURNS trigger AS
553 $$ 567 $$
554 BEGIN 568 BEGIN
555 EXECUTE format('DELETE FROM %I WHERE id = $1', OLD.relation) USING OLD.key; 569 EXECUTE format('DELETE FROM %s WHERE id = $1', OLD.relation) USING OLD.key;
556 END; 570 END;
557 $$ 571 $$
558 LANGUAGE plpgsql; 572 LANGUAGE plpgsql;
559 573
560 CREATE TRIGGER delete_import AFTER DELETE ON waterway.track_imports 574 CREATE TRIGGER delete_import AFTER DELETE ON waterway.track_imports
561 FOR EACH ROW EXECUTE PROCEDURE waterway.del_import(); 575 FOR EACH ROW EXECUTE PROCEDURE waterway.del_import();
562 576
577
578
563 COMMIT; 579 COMMIT;