]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/version-upgrade/2.3.6-2.3.7-upgrade-db.sql
2.3.6 -> 2.3.7 DB upgrade script
[working/Evergreen.git] / Open-ILS / src / sql / Pg / version-upgrade / 2.3.6-2.3.7-upgrade-db.sql
1 --Upgrade Script for 2.3.6 to 2.3.7
2 \set eg_version '''2.3.7'''
3 BEGIN;
4 INSERT INTO config.upgrade_log (version, applied_to) VALUES ('2.3.7', :eg_version);
5
6 SELECT evergreen.upgrade_deps_block_check('0788', :eg_version);
7
8 -- New view including 264 as a potential tag for publisher and pubdate
9 CREATE OR REPLACE VIEW reporter.old_super_simple_record AS
10 SELECT  r.id,
11     r.fingerprint,
12     r.quality,
13     r.tcn_source,
14     r.tcn_value,
15     FIRST(title.value) AS title,
16     FIRST(author.value) AS author,
17     ARRAY_TO_STRING(ARRAY_ACCUM( DISTINCT publisher.value), ', ') AS publisher,
18     ARRAY_TO_STRING(ARRAY_ACCUM( DISTINCT SUBSTRING(pubdate.value FROM $$\d+$$) ), ', ') AS pubdate,
19     ARRAY_ACCUM( DISTINCT REPLACE(SUBSTRING(isbn.value FROM $$^\S+$$), '-', '') ) AS isbn,
20     ARRAY_ACCUM( DISTINCT REGEXP_REPLACE(issn.value, E'^\\S*(\\d{4})[-\\s](\\d{3,4}x?)', E'\\1 \\2') ) AS issn
21   FROM  biblio.record_entry r
22     LEFT JOIN metabib.full_rec title ON (r.id = title.record AND title.tag = '245' AND title.subfield = 'a')
23     LEFT JOIN metabib.full_rec author ON (r.id = author.record AND author.tag IN ('100','110','111') AND author.subfield = 'a')
24     LEFT JOIN metabib.full_rec publisher ON (r.id = publisher.record AND (publisher.tag = '260' OR (publisher.tag = '264' AND publisher.ind2 = '1')) AND publisher.subfield = 'b')
25     LEFT JOIN metabib.full_rec pubdate ON (r.id = pubdate.record AND (pubdate.tag = '260' OR (pubdate.tag = '264' AND pubdate.ind2 = '1')) AND pubdate.subfield = 'c')
26     LEFT JOIN metabib.full_rec isbn ON (r.id = isbn.record AND isbn.tag IN ('024', '020') AND isbn.subfield IN ('a','z'))
27     LEFT JOIN metabib.full_rec issn ON (r.id = issn.record AND issn.tag = '022' AND issn.subfield = 'a')
28   GROUP BY 1,2,3,4,5;
29
30 -- Update reporter.materialized_simple_record with new 264-based values for publisher and pubdate
31 DELETE FROM reporter.materialized_simple_record WHERE id IN (
32     SELECT DISTINCT record FROM metabib.full_rec WHERE tag = '264' AND subfield IN ('b', 'c')
33 );
34
35 INSERT INTO reporter.materialized_simple_record
36     SELECT DISTINCT rossr.* FROM reporter.old_super_simple_record rossr INNER JOIN metabib.full_rec mfr ON mfr.record = rossr.id
37         WHERE mfr.tag = '264' AND mfr.subfield IN ('b', 'c')
38 ;
39
40 COMMIT;