Mercurial > gemma
view schema/updates/1469/aggregate-gm-logs.sql @ 5534:cb62985ec252 aggregate-gm-import-logging
WIP: Started with migration to convert all gm logs to new form.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 25 Oct 2021 15:43:38 +0200 |
parents | |
children | 1fba5766d820 |
line wrap: on
line source
DO $$ DECLARE logs CURSOR FOR SELECT lo.* FROM import.imports im JOIN import.import_logs lo ON lo.import_id = im.id WHERE im.kind = 'gm' ORDER BY lo.import_id, lo.time; last_id integer; BEGIN CREATE TEMP TABLE filtered_logs ( import_id integer NOT NULL, time timestamp with time zone NOT NULL, kind log_type NOT NULL default 'info'::log_type, msg text NOT NULL ); CREATE TEMP TABLE agg_tracker ( gid text NOT NULL UNIQUE, unknown boolean NOT NULL DEFAULT false, assume_zpg boolean NOT NULL DEFAULT false, ign_meas_codes text ARRAY, rescale_errors text ARRAY, missing_values text ARRAY, assume_cm integer NOT NULL DEFAULT 0, bad_values integer NOT NULL DEFAULT 0, measurements integer NOT NULL DEFAULT 0, predictions integer NOT NULL DEFAULT 0 ); last_id := -1; FOR line IN logs LOOP IF last_id <> line.import_id THEN RAISE NOTICE '%', line.import_id; last_id := line.import_id; -- TODO: Generated log lines from agg_tracker TRUNCATE agg_tracker; END IF; -- TODO: insert lines into filtered_logs or aggregate in agg_tracker END LOOP; -- TODO: Handle remains from agg_tracker -- DELETE FROM import.import_logs WHERE import_id IN ( -- SELECT id FROM import.imports WHERE kind = 'gm') -- INSERT INTO import.import_logs SELECT * FROM import.filtered_logs; DROP TABLE filtered_logs; DROP TABLE agg_tracker; END $$; -- VACUUM FULL;