]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/XXXX.schema.clear_hold_copy_map.sql
LP#1386347: Clear hold-copy-map efficiently
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / XXXX.schema.clear_hold_copy_map.sql
1 BEGIN;
2
3 CREATE OR REPLACE FUNCTION action.hold_request_clear_map () RETURNS TRIGGER AS $$
4 BEGIN
5   DELETE FROM action.hold_copy_map WHERE hold = NEW.id;
6   RETURN NEW;
7 END;
8 $$ LANGUAGE PLPGSQL;
9
10 CREATE TRIGGER hold_request_clear_map_tgr
11     AFTER UPDATE ON action.hold_request
12     FOR EACH ROW
13     WHEN (
14         (NEW.cancel_time IS NOT NULL AND OLD.cancel_time IS NULL)
15         OR (NEW.capture_time IS NOT NULL AND OLD.capture_time IS NULL)
16     )
17     EXECUTE PROCEDURE action.hold_request_clear_map();
18
19 COMMIT;
20