LP#1048822: Stamping upgrade script for simplified pull list fuller title
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 1059.lp1048822_fuller_title_super_simple.sql
1 BEGIN;
2
3 -- check whether patch can be applied
4 SELECT evergreen.upgrade_deps_block_check('1059', :eg_version); --Stompro/DPearl/kmlussier
5
6 CREATE OR REPLACE VIEW reporter.old_super_simple_record AS
7 SELECT  r.id,
8     r.fingerprint,
9     r.quality,
10     r.tcn_source,
11     r.tcn_value,
12     CONCAT_WS(' ', FIRST(title.value),FIRST(title_np.val)) AS title,
13     FIRST(author.value) AS author,
14     STRING_AGG(DISTINCT publisher.value, ', ') AS publisher,
15     STRING_AGG(DISTINCT SUBSTRING(pubdate.value FROM $$\d+$$), ', ') AS pubdate,
16     CASE WHEN ARRAY_AGG( DISTINCT REPLACE(SUBSTRING(isbn.value FROM $$^\S+$$), '-', '') ) = '{NULL}'
17         THEN NULL
18         ELSE ARRAY_AGG( DISTINCT REPLACE(SUBSTRING(isbn.value FROM $$^\S+$$), '-', '') )
19     END AS isbn,
20     CASE WHEN ARRAY_AGG( DISTINCT REGEXP_REPLACE(issn.value, E'^\\S*(\\d{4})[-\\s](\\d{3,4}x?)', E'\\1 \\2') ) = '{NULL}'
21         THEN NULL
22         ELSE ARRAY_AGG( DISTINCT REGEXP_REPLACE(issn.value, E'^\\S*(\\d{4})[-\\s](\\d{3,4}x?)', E'\\1 \\2') )
23     END AS issn
24   FROM  biblio.record_entry r
25     LEFT JOIN metabib.full_rec title ON (r.id = title.record AND title.tag = '245' AND title.subfield = 'a')
26     LEFT JOIN ( -- Grab 245 N and P subfields in the order that they appear.
27       SELECT b.record, string_agg(val, ' ') AS val FROM (
28              SELECT title_np.record, title_np.value AS val
29               FROM metabib.full_rec title_np
30               WHERE
31               title_np.tag = '245'
32                         AND title_np.subfield IN ('p','n')                      
33                         ORDER BY title_np.id
34                 ) b
35                 GROUP BY 1
36          ) title_np ON (title_np.record=r.id) 
37     LEFT JOIN metabib.full_rec author ON (r.id = author.record AND author.tag IN ('100','110','111') AND author.subfield = 'a')
38     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')
39     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')
40     LEFT JOIN metabib.full_rec isbn ON (r.id = isbn.record AND isbn.tag IN ('024', '020') AND isbn.subfield IN ('a','z'))
41     LEFT JOIN metabib.full_rec issn ON (r.id = issn.record AND issn.tag = '022' AND issn.subfield = 'a')
42   GROUP BY 1,2,3,4,5;
43
44   
45   -- Remove trigger on biblio.record_entry
46   SELECT reporter.disable_materialized_simple_record_trigger();
47   
48   -- Rebuild reporter.materialized_simple_record
49   SELECT reporter.enable_materialized_simple_record_trigger();
50   
51   COMMIT;