]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade_simple_record.sql
a328f0023edef48cf00d5f64565ebeca8aff3eed
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade_simple_record.sql
1
2 BEGIN;
3
4 CREATE TABLE reporter.materialized_simple_record AS SELECT * FROM reporter.simple_record WHERE 1=0;
5
6 INSERT INTO reporter.materialized_simple_record
7     (id,fingerprint,quality,tcn_source,tcn_value,title,author,publisher,pubdate,isbn,issn)
8     SELECT DISTINCT ON (id) * FROM reporter.super_simple_record;
9
10 ALTER TABLE reporter.materialized_simple_record ADD PRIMARY KEY (id);
11
12 CREATE OR REPLACE FUNCTION reporter.simple_rec_sync () RETURNS TRIGGER AS $$
13 BEGIN
14     IF TG_OP IN ('UPDATE','DELETE') THEN
15         DELETE FROM reporter.materialized_simple_record WHERE id = OLD.record;
16     END IF;
17
18     IF TG_OP IN ('INSERT','UPDATE') AND NOT NEW.deleted THEN
19         INSERT INTO reporter.materialized_simple_record SELECT * FROM reporter.simple_record WHERE id = NEW.record;
20     END IF;
21
22 END;
23 $$ LANGUAGE PLPGSQL;
24
25 CREATE TRIGGER zzz_update_materialized_simple_record_tgr
26     AFTER INSERT OR UPDATE OR DELETE ON metabib.full_rec
27     FOR EACH ROW EXECUTE PROCEDURE reporter.simple_rec_sync();
28
29 COMMIT;
30