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);
+DELETE FROM action.circulation_limit_group_map WHERE circ IN (SELECT a.circ FROM action.circulation_limit_group_map a LEFT JOIN action.circulation b ON b.id = a.circ WHERE b.id IS NULL);
COMMIT;
\set ECHO all
\timing
+ALTER TABLE biblio.monograph_part DISABLE RULE protect_mono_part_delete;
+
BEGIN;
DELETE FROM authority.bib_linking WHERE bib IN
WHERE NOT EXISTS (select 1 from asset.call_number where record = x.record)
);
+DELETE FROM metabib.display_entry WHERE record IN
+(
+ SELECT record FROM esi.:vol_del_table x
+ WHERE NOT EXISTS (select 1 from asset.call_number where record = x.record)
+);
+
+DELETE FROM metabib.real_full_rec WHERE record IN
+(
+ SELECT record FROM esi.:vol_del_table x
+ WHERE NOT EXISTS (select 1 from asset.call_number where record = x.record)
+);
+
COMMIT;
+
+
+ALTER TABLE biblio.monograph_part ENABLE RULE protect_mono_part_delete;
DELETE FROM vandelay.queue WHERE owner 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));
-DELETE FROM reporter.report_folder WHERE owner IN
+DELETE FROM reporter.report WHERE owner 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));
-DELETE FROM reporter.report WHERE owner IN
+DELETE FROM reporter.report_folder WHERE owner 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));
+DELETE FROM reporter.report WHERE template IN
+ (SELECT id FROM reporter.template WHERE owner 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 id NOT IN (SELECT report FROM reporter.schedule WHERE complete_time IS NULL);
+
DELETE FROM reporter.output_folder WHERE owner 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));