3 SELECT evergreen.upgrade_deps_block_check('1004', :eg_version);
5 CREATE OR REPLACE FUNCTION reporter.hold_request_record_mapper () RETURNS TRIGGER AS $$
7 IF TG_OP = 'INSERT' THEN
8 INSERT INTO reporter.hold_request_record (id, target, hold_type, bib_record)
13 WHEN NEW.hold_type = 'T'
15 WHEN NEW.hold_type = 'I'
16 THEN (SELECT ssub.record_entry FROM serial.subscription ssub JOIN serial.issuance si ON (si.subscription = ssub.id) WHERE si.id = NEW.target)
17 WHEN NEW.hold_type = 'V'
18 THEN (SELECT cn.record FROM asset.call_number cn WHERE cn.id = NEW.target)
19 WHEN NEW.hold_type IN ('C','R','F')
20 THEN (SELECT cn.record FROM asset.call_number cn JOIN asset.copy cp ON (cn.id = cp.call_number) WHERE cp.id = NEW.target)
21 WHEN NEW.hold_type = 'M'
22 THEN (SELECT mr.master_record FROM metabib.metarecord mr WHERE mr.id = NEW.target)
23 WHEN NEW.hold_type = 'P'
24 THEN (SELECT bmp.record FROM biblio.monograph_part bmp WHERE bmp.id = NEW.target)
26 ELSIF TG_OP = 'UPDATE' AND (OLD.target <> NEW.target OR OLD.hold_type <> NEW.hold_type) THEN
27 UPDATE reporter.hold_request_record
28 SET target = NEW.target,
29 hold_type = NEW.hold_type,
31 WHEN NEW.hold_type = 'T'
33 WHEN NEW.hold_type = 'I'
34 THEN (SELECT ssub.record_entry FROM serial.subscription ssub JOIN serial.issuance si ON (si.subscription = ssub.id) WHERE si.id = NEW.target)
35 WHEN NEW.hold_type = 'V'
36 THEN (SELECT cn.record FROM asset.call_number cn WHERE cn.id = NEW.target)
37 WHEN NEW.hold_type IN ('C','R','F')
38 THEN (SELECT cn.record FROM asset.call_number cn JOIN asset.copy cp ON (cn.id = cp.call_number) WHERE cp.id = NEW.target)
39 WHEN NEW.hold_type = 'M'
40 THEN (SELECT mr.master_record FROM metabib.metarecord mr WHERE mr.id = NEW.target)
41 WHEN NEW.hold_type = 'P'
42 THEN (SELECT bmp.record FROM biblio.monograph_part bmp WHERE bmp.id = NEW.target)
50 TRUNCATE TABLE reporter.hold_request_record;
52 INSERT INTO reporter.hold_request_record
60 THEN (SELECT ssub.record_entry FROM serial.subscription ssub JOIN serial.issuance si ON (si.subscription = ssub.id) WHERE si.id = ahr.target)
62 THEN (SELECT cn.record FROM asset.call_number cn WHERE cn.id = ahr.target)
63 WHEN hold_type IN ('C','R','F')
64 THEN (SELECT cn.record FROM asset.call_number cn JOIN asset.copy cp ON (cn.id = cp.call_number) WHERE cp.id = ahr.target)
66 THEN (SELECT mr.master_record FROM metabib.metarecord mr WHERE mr.id = ahr.target)
68 THEN (SELECT bmp.record FROM biblio.monograph_part bmp WHERE bmp.id = ahr.target)
70 FROM action.hold_request ahr;
72 REINDEX TABLE reporter.hold_request_record;
76 ANALYZE reporter.hold_request_record;