3 INSERT INTO config.upgrade_log (version) VALUES ('0410'); -- gmc
5 INSERT INTO config.internal_flag (name) VALUES ('ingest.metarecord_mapping.skip_on_update');
7 -- AFTER UPDATE OR INSERT trigger for biblio.record_entry
8 CREATE OR REPLACE FUNCTION biblio.indexing_ingest_or_delete () RETURNS TRIGGER AS $func$
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
17 IF TG_OP = 'UPDATE' THEN -- re-ingest?
18 PERFORM * FROM config.internal_flag WHERE name = 'ingest.reingest.force_on_same_marc' AND enabled;
20 IF NOT FOUND AND OLD.marc = NEW.marc THEN -- don't do anything if the MARC didn't change
25 -- Record authority linking
26 PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_authority_linking' AND enabled;
28 PERFORM biblio.map_authority_linking( NEW.id, NEW.marc );
31 -- Flatten and insert the mfr data
32 PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_metabib_full_rec' AND enabled;
34 PERFORM metabib.reingest_metabib_full_rec(NEW.id);
35 PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_metabib_rec_descriptor' AND enabled;
37 PERFORM metabib.reingest_metabib_rec_descriptor(NEW.id);
41 -- Gather and insert the field entry data
42 PERFORM metabib.reingest_metabib_field_entries(NEW.id);
45 IF TG_OP = 'INSERT' THEN
46 PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_located_uri' AND enabled;
48 PERFORM biblio.extract_located_uris( NEW.id, NEW.marc, NEW.editor );
51 PERFORM * FROM config.internal_flag WHERE name = 'ingest.disable_located_uri' AND enabled;
53 PERFORM biblio.extract_located_uris( NEW.id, NEW.marc, NEW.editor );
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;
61 PERFORM metabib.remap_metarecord_for_bib( NEW.id, NEW.fingerprint );
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;
66 PERFORM metabib.remap_metarecord_for_bib( NEW.id, NEW.fingerprint );
72 $func$ LANGUAGE PLPGSQL;