From: Rogan Hamby Date: Mon, 26 Mar 2018 15:18:01 +0000 (-0400) Subject: speed improvements in removing circs X-Git-Url: http://git.equinoxoli.org/?p=migration-tools.git;a=commitdiff_plain;h=aba77657ccc6e619b78587b4966d40341999f12a speed improvements in removing circs --- diff --git a/remove_ou_data/04_remove_circ.sql b/remove_ou_data/04_remove_circ.sql index 4780c9d..ed11560 100644 --- a/remove_ou_data/04_remove_circ.sql +++ b/remove_ou_data/04_remove_circ.sql @@ -21,6 +21,8 @@ ALTER TABLE action.circulation DISABLE TRIGGER action_circulation_aging_tgr; ALTER TABLE action.circulation DISABLE TRIGGER age_parent_circ; +ALTER TABLE action.circulation_limit_group_map DROP CONSTRAINT circulation_limit_group_map_circ_fkey; +ALTER TABLE action.usr_circ_history DROP CONSTRAINT usr_circ_history_source_circ_fkey; BEGIN; @@ -47,7 +49,14 @@ UPDATE action.non_cat_in_house_use SET staff = 1 WHERE staff IN (SELECT id FROM actor.usr WHERE home_ou IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del)) AND org_unit IN (SELECT (actor.org_unit_descendants(id)).id from actor.org_unit where shortname = :ou_to_del); +DELETE FROM action.usr_circ_history WHERE id IN (SELECT a.id FROM action.usr_circ_history a LEFT JOIN action.circulation b ON b.id = a.source_circ WHERE b.id IS NULL); + +DELETE FROM action.circulation_limit_group_map WHERE circ IN (SELECT a.id FROM action.circulation_limit_group_map a LEFT JOIN action.circulation b ON b.id = a.circ WHERE b.id IS NULL); + COMMIT; ALTER TABLE action.circulation ENABLE TRIGGER action_circulation_aging_tgr; ALTER TABLE action.circulation ENABLE TRIGGER age_parent_circ; +ALTER TABLE action.usr_circ_history ADD CONSTRAINT usr_circ_history_source_circ_fkey FOREIGN KEY (source_circ) REFERENCES action.circulation(id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED; +ALTER TABLE action.circulation_limit_group_map ADD CONSTRAINT circulation_limit_group_map_circ_fkey FOREIGN KEY (circ) REFERENCES action.circulation(id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED; +