e7cfb05a98b2e4e1c4daef3f9914dac4cd330cef
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / XXXX.lmit_logs_oust-create.sql
1 BEGIN;
2
3 --SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
4
5 CREATE OR REPLACE FUNCTION evergreen.limit_oustl() RETURNS TRIGGER AS $oustl_limit$
6     BEGIN
7         -- Only keeps the most recent five settings changes.
8         DELETE FROM config.org_unit_setting_type_log WHERE field_name = NEW.field_name AND org = NEW.org AND date_applied NOT IN 
9         (SELECT date_applied FROM config.org_unit_setting_type_log WHERE field_name = NEW.field_name AND org = NEW.org ORDER BY date_applied DESC LIMIT 4);
10         
11         IF (TG_OP = 'UPDATE') THEN
12             RETURN NEW;
13         ELSIF (TG_OP = 'INSERT') THEN
14             RETURN NEW;
15         END IF;
16         RETURN NULL;
17     END;
18 $oustl_limit$ LANGUAGE plpgsql;
19
20 DROP TRIGGER IF EXISTS limit_logs_oust ON config.org_unit_setting_type_log;
21
22 CREATE TRIGGER limit_logs_oust
23     BEFORE INSERT OR UPDATE ON config.org_unit_setting_type_log
24     FOR EACH ROW EXECUTE PROCEDURE limit_oustl();
25
26 COMMIT;