]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0949.schema.no_delete_acq_cancel_reasons.sql
LP2042879 Shelving Location Groups Admin accessibility
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0949.schema.no_delete_acq_cancel_reasons.sql
1 BEGIN;
2
3 SELECT evergreen.upgrade_deps_block_check('0949', :eg_version);
4
5 CREATE OR REPLACE FUNCTION evergreen.protect_reserved_rows_from_delete() RETURNS trigger AS $protect_reserved$
6 BEGIN
7 IF OLD.id < TG_ARGV[0]::INT THEN
8     RAISE EXCEPTION 'Cannot delete row with reserved ID %', OLD.id; 
9 END IF;
10 END
11 $protect_reserved$
12 LANGUAGE plpgsql;
13
14 DROP TRIGGER IF EXISTS acq_no_deleted_reserved_cancel_reasons ON acq.cancel_reason;
15
16 CREATE TRIGGER acq_no_deleted_reserved_cancel_reasons BEFORE DELETE ON acq.cancel_reason
17     FOR EACH ROW EXECUTE PROCEDURE evergreen.protect_reserved_rows_from_delete(2000);
18
19 ALTER TABLE acq.cancel_reason ENABLE TRIGGER acq_no_deleted_reserved_cancel_reasons;
20
21 COMMIT;