]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0410.schema.allow_parallel_reingest.sql
LP1779158 Angular7 and ng-lint updates
[Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0410.schema.allow_parallel_reingest.sql
1 BEGIN;
2
3 INSERT INTO config.upgrade_log (version) VALUES ('0410'); -- gmc
4
5 INSERT INTO config.internal_flag (name) VALUES ('ingest.metarecord_mapping.skip_on_update');
6
7 -- AFTER UPDATE OR INSERT trigger for biblio.record_entry
8 CREATE OR REPLACE FUNCTION biblio.indexing_ingest_or_delete () RETURNS TRIGGER AS $func$
9 BEGIN
10
11     IF NEW.deleted IS TRUE THEN -- If this bib is deleted
12         DELETE FROM metabib.metarecord_source_map WHERE source = NEW.id; -- Rid ourselves of the search-estimate-killing linkage
13         DELETE FROM authority.bib_linking WHERE bib = NEW.id; -- Avoid updating fields in bibs that are no longer visible
14         RETURN NEW; -- and we're done
15     END IF;
16
17     IF TG_OP = 'UPDATE' THEN -- re-ingest?
18         PERFORM * FROM config.internal_flag WHERE name = 'ingest.reingest.force_on_same_marc' AND enabled;
19
20         IF NOT FOUND AND OLD.marc = NEW.marc THEN -- don't do anything if the MARC didn't change
21             RETURN NEW;
22         END IF;
23     END IF;
24
25     -- Record authority linking
26     PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_authority_linking' AND enabled;
27     IF NOT FOUND THEN
28         PERFORM biblio.map_authority_linking( NEW.id, NEW.marc );
29     END IF;
30
31     -- Flatten and insert the mfr data
32     PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_metabib_full_rec' AND enabled;
33     IF NOT FOUND THEN
34         PERFORM metabib.reingest_metabib_full_rec(NEW.id);
35         PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_metabib_rec_descriptor' AND enabled;
36         IF NOT FOUND THEN
37             PERFORM metabib.reingest_metabib_rec_descriptor(NEW.id);
38         END IF;
39     END IF;
40
41     -- Gather and insert the field entry data
42     PERFORM metabib.reingest_metabib_field_entries(NEW.id);
43
44     -- Located URI magic
45     IF TG_OP = 'INSERT' THEN
46         PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_located_uri' AND enabled;
47         IF NOT FOUND THEN
48             PERFORM biblio.extract_located_uris( NEW.id, NEW.marc, NEW.editor );
49         END IF;
50     ELSE
51         PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_located_uri' AND enabled;
52         IF NOT FOUND THEN
53             PERFORM biblio.extract_located_uris( NEW.id, NEW.marc, NEW.editor );
54         END IF;
55     END IF;
56
57     -- (re)map metarecord-bib linking
58     IF TG_OP = 'INSERT' THEN -- if not deleted and performing an insert, check for the flag
59         PERFORM * FROM config.internal_flag WHERE name = 'ingest.metarecord_mapping.skip_on_insert' AND enabled;
60         IF NOT FOUND THEN
61             PERFORM metabib.remap_metarecord_for_bib( NEW.id, NEW.fingerprint );
62         END IF;
63     ELSE -- we're doing an update, and we're not deleted, remap
64         PERFORM * FROM config.internal_flag WHERE name = 'ingest.metarecord_mapping.skip_on_update' AND enabled;
65         IF NOT FOUND THEN
66             PERFORM metabib.remap_metarecord_for_bib( NEW.id, NEW.fingerprint );
67         END IF;
68     END IF;
69
70     RETURN NEW;
71 END;
72 $func$ LANGUAGE PLPGSQL;
73
74 COMMIT;