3 SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
5 -- VIEWS for the oai service
8 -- The view presents a lean table with unique bre.tc-numbers for oai paging;
9 CREATE VIEW oai.biblio AS
12 bre.edit_date AS datestamp,
13 bre.deleted AS deleted
15 biblio.record_entry bre
19 -- The view presents a lean table with unique are.tc-numbers for oai paging;
20 CREATE VIEW oai.authority AS
23 are.edit_date AS datestamp,
24 are.deleted AS deleted
26 authority.record_entry AS are
33 \qecho If an edit date changes in the asset.call_number or asset.copy and you want this to persist to an OAI2 datestamp,
34 \qecho then add these stored procedures and triggers:
36 \qecho 'CREATE OR REPLACE FUNCTION oai.datestamp(rid BIGINT)'
37 \qecho ' RETURNS VOID AS $$'
39 \qecho ' UPDATE biblio.record_entry AS bre'
40 \qecho ' SET edit_date = now()'
41 \qecho ' WHERE bre.id = rid;'
43 \qecho '$$ LANGUAGE plpgsql;'
45 \qecho 'CREATE OR REPLACE FUNCTION oai.call_number_datestamp()'
46 \qecho ' RETURNS TRIGGER AS $$'
48 \qecho ' IF TG_OP = ''DELETE'''
50 \qecho ' PERFORM oai.datestamp(OLD.record);'
54 \qecho ' PERFORM oai.datestamp(NEW.record);'
58 \qecho '$$ LANGUAGE plpgsql;'
60 \qecho 'CREATE OR REPLACE FUNCTION oai.copy_datestamp()'
61 \qecho ' RETURNS TRIGGER AS $$'
63 \qecho ' IF TG_OP = ''DELETE'''
65 \qecho ' PERFORM oai.datestamp((SELECT acn.record FROM asset.call_number as acn WHERE acn.id = OLD.call_number));'
69 \qecho ' PERFORM oai.datestamp((SELECT acn.record FROM asset.call_number as acn WHERE acn.id = NEW.call_number));'
73 \qecho '$$ LANGUAGE plpgsql;'
75 \qecho 'CREATE TRIGGER call_number_datestamp AFTER INSERT OR UPDATE OR DELETE ON asset.call_number FOR EACH ROW EXECUTE PROCEDURE oai.call_number_datestamp();'
76 \qecho 'CREATE TRIGGER copy_datestamp AFTER INSERT OR UPDATE OR DELETE ON asset.copy FOR EACH ROW EXECUTE PROCEDURE oai.copy_datestamp();'