]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/version-upgrade/2.6.3-2.6.4-upgrade-db.sql
Forward-port 2.6.4 upgrade script
[Evergreen.git] / Open-ILS / src / sql / Pg / version-upgrade / 2.6.3-2.6.4-upgrade-db.sql
1 --Upgrade Script for 2.6.3 to 2.6.4
2 \set eg_version '''2.6.4'''
3 BEGIN;
4 INSERT INTO config.upgrade_log (version, applied_to) VALUES ('2.6.4', :eg_version);
5
6 SELECT evergreen.upgrade_deps_block_check('0892', :eg_version);
7
8 CREATE OR REPLACE VIEW metabib.record_attr_flat AS
9     SELECT  v.source AS id,
10             m.attr AS attr,
11             m.value AS value
12       FROM  metabib.record_attr_vector_list v
13             LEFT JOIN metabib.uncontrolled_record_attr_value m ON ( m.id = ANY( v.vlist ) )
14         UNION
15     SELECT  v.source AS id,
16             c.ctype AS attr,
17             c.code AS value
18       FROM  metabib.record_attr_vector_list v
19             LEFT JOIN config.coded_value_map c ON ( c.id = ANY( v.vlist ) );
20
21 CREATE OR REPLACE FUNCTION unapi.mmr_mra (
22     obj_id BIGINT,
23     format TEXT,
24     ename TEXT,
25     includes TEXT[],
26     org TEXT,
27     depth INT DEFAULT NULL,
28     slimit HSTORE DEFAULT NULL,
29     soffset HSTORE DEFAULT NULL,
30     include_xmlns BOOL DEFAULT TRUE,
31     pref_lib INT DEFAULT NULL
32 ) RETURNS XML AS $F$
33     SELECT  XMLELEMENT(
34         name attributes,
35         XMLATTRIBUTES(
36             CASE WHEN $9 THEN 'http://open-ils.org/spec/indexing/v1' ELSE NULL END AS xmlns,
37             'tag:open-ils.org:U2@mmr/' || $1 AS metarecord
38         ),
39         (SELECT XMLAGG(foo.y)
40           FROM (
41             WITH sourcelist AS (
42                 WITH aou AS (SELECT COALESCE(id, (evergreen.org_top()).id) AS id
43                     FROM actor.org_unit WHERE shortname = $5 LIMIT 1)
44                 SELECT source
45                 FROM metabib.metarecord_source_map, aou
46                 WHERE metarecord = $1 AND (
47                     EXISTS (
48                         SELECT 1 FROM asset.opac_visible_copies
49                         WHERE record = source AND circ_lib IN (
50                             SELECT id FROM actor.org_unit_descendants(aou.id, $6))
51                         LIMIT 1
52                     )
53                     OR EXISTS (SELECT 1 FROM located_uris(source, aou.id, $10) LIMIT 1)
54                 )
55             )
56             SELECT  cmra.aid,
57                     XMLELEMENT(
58                         name field,
59                         XMLATTRIBUTES(
60                             cmra.attr AS name,
61                             cmra.value AS "coded-value",
62                             cmra.aid AS "cvmid",
63                             rad.composite,
64                             rad.multi,
65                             rad.filter,
66                             rad.sorter
67                         ),
68                         cmra.value
69                     )
70               FROM  (
71                 SELECT  v.source AS id,
72                         c.id AS aid,
73                         c.ctype AS attr,
74                         c.code AS value
75                   FROM  metabib.record_attr_vector_list v
76                         JOIN config.coded_value_map c ON ( c.id = ANY( v.vlist ) )
77                 ) AS cmra
78                     JOIN config.record_attr_definition rad ON (cmra.attr = rad.name)
79                     JOIN sourcelist ON (cmra.id = sourcelist.source)
80                 UNION ALL
81             SELECT  umra.aid,
82                     XMLELEMENT(
83                         name field,
84                         XMLATTRIBUTES(
85                             umra.attr AS name,
86                             rad.composite,
87                             rad.multi,
88                             rad.filter,
89                             rad.sorter
90                         ),
91                         umra.value
92                     )
93               FROM  (
94                 SELECT  v.source AS id,
95                         m.id AS aid,
96                         m.attr AS attr,
97                         m.value AS value
98                   FROM  metabib.record_attr_vector_list v
99                         JOIN metabib.uncontrolled_record_attr_value m ON ( m.id = ANY( v.vlist ) )
100                 ) AS umra
101                     JOIN config.record_attr_definition rad ON (umra.attr = rad.name)
102                     JOIN sourcelist ON (umra.id = sourcelist.source)
103                 ORDER BY 1
104
105             )foo(id,y)
106         )
107     )
108 $F$ LANGUAGE SQL STABLE;
109
110
111
112 SELECT evergreen.upgrade_deps_block_check('0893', :eg_version); 
113
114 CREATE OR REPLACE VIEW reporter.simple_record AS
115 SELECT  r.id,
116     s.metarecord,
117     r.fingerprint,
118     r.quality,
119     r.tcn_source,
120     r.tcn_value,
121     title.value AS title,
122     uniform_title.value AS uniform_title,
123     author.value AS author,
124     publisher.value AS publisher,
125     SUBSTRING(pubdate.value FROM $$\d+$$) AS pubdate,
126     series_title.value AS series_title,
127     series_statement.value AS series_statement,
128     summary.value AS summary,
129     ARRAY_AGG( DISTINCT REPLACE(SUBSTRING(isbn.value FROM $$^\S+$$), '-', '') ) AS isbn,
130     ARRAY_AGG( DISTINCT REGEXP_REPLACE(issn.value, E'^\\S*(\\d{4})[-\\s](\\d{3,4}x?)', E'\\1 \\2') ) AS issn,
131     ARRAY((SELECT DISTINCT value FROM metabib.full_rec WHERE tag = '650' AND subfield = 'a' AND record = r.id)) AS topic_subject,
132     ARRAY((SELECT DISTINCT value FROM metabib.full_rec WHERE tag = '651' AND subfield = 'a' AND record = r.id)) AS geographic_subject,
133     ARRAY((SELECT DISTINCT value FROM metabib.full_rec WHERE tag = '655' AND subfield = 'a' AND record = r.id)) AS genre,
134     ARRAY((SELECT DISTINCT value FROM metabib.full_rec WHERE tag = '600' AND subfield = 'a' AND record = r.id)) AS name_subject,
135     ARRAY((SELECT DISTINCT value FROM metabib.full_rec WHERE tag = '610' AND subfield = 'a' AND record = r.id)) AS corporate_subject,
136     ARRAY((SELECT value FROM metabib.full_rec WHERE tag = '856' AND subfield IN ('3','y','u') AND record = r.id ORDER BY CASE WHEN subfield IN ('3','y') THEN 0 ELSE 1 END)) AS external_uri
137   FROM  biblio.record_entry r
138     JOIN metabib.metarecord_source_map s ON (s.source = r.id)
139     LEFT JOIN metabib.full_rec uniform_title ON (r.id = uniform_title.record AND uniform_title.tag = '240' AND uniform_title.subfield = 'a')
140     LEFT JOIN metabib.full_rec title ON (r.id = title.record AND title.tag = '245' AND title.subfield = 'a')
141     LEFT JOIN metabib.full_rec author ON (r.id = author.record AND author.tag = '100' AND author.subfield = 'a')
142     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')
143     LEFT JOIN metabib.full_rec pubdate ON (r.id = pubdate.record AND (pubdate.tag = '260' OR (publisher.tag = '264' AND publisher.ind2 = '1')) AND pubdate.subfield = 'c')
144     LEFT JOIN metabib.full_rec isbn ON (r.id = isbn.record AND isbn.tag IN ('024', '020') AND isbn.subfield IN ('a','z'))
145     LEFT JOIN metabib.full_rec issn ON (r.id = issn.record AND issn.tag = '022' AND issn.subfield = 'a')
146     LEFT JOIN metabib.full_rec series_title ON (r.id = series_title.record AND series_title.tag IN ('830','440') AND series_title.subfield = 'a')
147     LEFT JOIN metabib.full_rec series_statement ON (r.id = series_statement.record AND series_statement.tag = '490' AND series_statement.subfield = 'a')
148     LEFT JOIN metabib.full_rec summary ON (r.id = summary.record AND summary.tag = '520' AND summary.subfield = 'a')
149   GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14;
150
151
152 SELECT evergreen.upgrade_deps_block_check('0894', :eg_version);
153
154 CREATE INDEX m_b_voider_idx ON money.billing (voider);
155
156
157 SELECT evergreen.upgrade_deps_block_check('0895', :eg_version);
158
159 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('File', '008', 'COM', 26, 1, 'u');
160 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('File', '006', 'COM', 9, 1, 'u');
161 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Freq', '008', 'SER', 18, 1, ' ');
162 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Freq', '006', 'SER', 1, 1, ' ');
163 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Regl', '008', 'SER', 19, 1, ' ');
164 INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Regl', '006', 'SER', 2, 1, ' ');
165
166 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('file','File','File');
167 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('freq','Freq','Freq');
168 INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('regl','Regl','Regl');
169
170 COMMIT;