Mercurial > gemma
comparison schema/updates/1101/01.improve_del_import.sql @ 4126:52f7264265bb
Bulk-delete tracked entries per table
Especially when many entries in one table are tracked by one
import, this makes declining an import a lot faster.
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Thu, 01 Aug 2019 17:02:09 +0200 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
4125:0f69d256fa12 | 4126:52f7264265bb |
---|---|
1 CREATE OR REPLACE FUNCTION import.del_import(imp_id int) RETURNS void AS | |
2 $$ | |
3 DECLARE | |
4 tmp RECORD; | |
5 BEGIN | |
6 FOR tmp IN | |
7 SELECT relation, array_agg(key) AS keys | |
8 FROM import.track_imports | |
9 WHERE import_id = imp_id AND NOT deletion | |
10 GROUP BY relation | |
11 LOOP | |
12 EXECUTE format('DELETE FROM %s WHERE id = ANY($1)', tmp.relation) | |
13 USING tmp.keys; | |
14 END LOOP; | |
15 END; | |
16 $$ | |
17 LANGUAGE plpgsql; |