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;