Mercurial > gemma
changeset 4033:4f2f34f5d14d
Schema: delete only import entry that are for deletion.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Tue, 23 Jul 2019 16:59:43 +0200 |
parents | 2fcfae3daa7d |
children | f2d5bf42ed38 fbd7c012f10c |
files | schema/gemma.sql schema/updates/1008/01.import-delete.sql schema/version.sql |
diffstat | 3 files changed, 18 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/schema/gemma.sql Tue Jul 23 14:58:56 2019 +0200 +++ b/schema/gemma.sql Tue Jul 23 16:59:43 2019 +0200 @@ -876,7 +876,7 @@ tmp RECORD; BEGIN FOR tmp IN - SELECT * FROM import.track_imports WHERE import_id = imp_id + SELECT * FROM import.track_imports WHERE import_id = imp_id AND NOT deletion LOOP EXECUTE format('DELETE FROM %s WHERE id = $1', tmp.relation) USING tmp.key; END LOOP; @@ -884,15 +884,6 @@ $$ LANGUAGE plpgsql; -CREATE FUNCTION import.del_import() RETURNS trigger AS -$$ -BEGIN - EXECUTE format('DELETE FROM %s WHERE id = $1', OLD.relation) USING OLD.key; - RETURN NULL; -END; -$$ -LANGUAGE plpgsql; - CREATE SCHEMA caching CREATE TABLE sounding_differences (
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/schema/updates/1008/01.import-delete.sql Tue Jul 23 16:59:43 2019 +0200 @@ -0,0 +1,16 @@ +DROP FUNCTION import.del_import(); + +CREATE OR REPLACE FUNCTION import.del_import(imp_id int) RETURNS void AS +$$ +DECLARE + tmp RECORD; +BEGIN + FOR tmp IN + SELECT * FROM import.track_imports WHERE import_id = imp_id AND NOT deletion + LOOP + EXECUTE format('DELETE FROM %s WHERE id = $1', tmp.relation) USING tmp.key; + END LOOP; +END; +$$ +LANGUAGE plpgsql; +