]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/XXXX.data.display-field-seed-data.sql
LP#1727487 Display field seed data WIP
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / XXXX.data.display-field-seed-data.sql
1 BEGIN;
2
3 -- SELECT evergreen.upgrade_deps_block_check('TODO', :eg_version);
4
5 -- NEW config.metabib_field entries
6
7 INSERT INTO config.metabib_field (id, field_class, name, 
8     label, xpath, display_field, search_field, browse_field)
9 VALUES (
10     38, 'identifier', 'edition', 
11     oils_i18n_gettext(38, 'Edition', 'cmf', 'label'),
12     $$//mods33:mods/mods33:originInfo//mods33:edition[1]$$,
13     TRUE, FALSE, FALSE
14 );
15
16 INSERT INTO config.metabib_field (id, field_class, name, 
17     label, xpath, display_field, search_field, browse_field)
18 VALUES (
19     39, 'identifier', 'physical_description', 
20     oils_i18n_gettext(39, 'Physical Descrption', 'cmf', 'label'),
21     $$(//mods33:mods/mods33:physicalDescription/mods33:form|//mods33:mods/mods33:physicalDescription/mods33:extent|//mods33:mods/mods33:physicalDescription/mods33:reformattingQuality|//mods33:mods/mods33:physicalDescription/mods33:internetMediaType|//mods33:mods/mods33:physicalDescription/mods33:digitalOrigin)$$,
22     TRUE, FALSE, FALSE
23 );
24
25 INSERT INTO config.metabib_field (id, field_class, name, 
26     label, xpath, display_field, search_field, browse_field)
27 VALUES (
28     40, 'identifier', 'publisher', 
29     oils_i18n_gettext(40, 'Publisher', 'cmf', 'label'),
30     $$//mods33:mods/mods33:originInfo//mods33:publisher[1]$$,
31     TRUE, FALSE, FALSE
32 );
33
34 INSERT INTO config.metabib_field (id, field_class, name, 
35     label, xpath, display_field, search_field, browse_field)
36 VALUES (
37     41, 'identifier', 'abstract', 
38     oils_i18n_gettext(41, 'Abstract', 'cmf', 'label'),
39     $$//mods33:mods/mods33:abstract$$,
40     TRUE, FALSE, FALSE
41 );
42
43 INSERT INTO config.metabib_field (id, field_class, name, 
44     label, xpath, display_field, search_field, browse_field)
45 VALUES (
46     42, 'identifier', 'toc', 
47     oils_i18n_gettext(42, 'Table of Contents', 'cmf', 'label'),
48     $$//mods33:tableOfContents$$,
49     TRUE, FALSE, FALSE
50 );
51
52 INSERT INTO config.metabib_field (id, field_class, name, 
53     label, xpath, display_field, search_field, browse_field)
54 VALUES (
55     43, 'identifier', 'type_of_resource', 
56     oils_i18n_gettext(43, 'Type of Resource', 'cmf', 'label'),
57     $$//mods33:mods/mods33:typeOfResource$$,
58     TRUE, FALSE, FALSE
59 );
60
61 INSERT INTO config.metabib_field (id, field_class, name, 
62     label, xpath, display_field, search_field, browse_field)
63 VALUES (
64     44, 'identifier', 'pubdate', 
65     oils_i18n_gettext(44, 'Publication Date', 'cmf', 'label'),
66     $$//mods33:mods/mods33:originInfo//mods33:dateIssued[@encoding="marc"]|//mods33:mods/mods33:originInfo//mods33:dateIssued[1]$$,
67     TRUE, FALSE, FALSE
68 );
69
70
71 -- Modify existing config.metabib_field entries
72
73 UPDATE config.metabib_field SET display_field = TRUE WHERE id IN (
74     1,  -- seriestitle
75     11, -- subject_geographic 
76     12, -- subject_name
77     13, -- subject_temporal
78     14, -- subject_topic
79     19, -- ISSN
80     20, -- UPC
81     26  -- TCN
82 );
83
84 -- Map display field names to config.metabib_field entries
85
86 INSERT INTO config.display_field_map (name, field, multi) VALUES 
87     ('series_title',         1, FALSE),
88     ('subject_geographic',  11, TRUE),
89     ('subject_name',        12, TRUE),
90     ('subject_temporal',    13, TRUE),
91     ('subject_topic',       14, TRUE),
92     ('issn',                19, TRUE),
93     ('upc',                 20, TRUE),
94     ('tcn',                 26, FALSE),
95     ('edition',             38, FALSE),
96     ('physical_description',39, TRUE),
97     ('publisher',           40, FALSE),
98     ('abstract',            41, FALSE),
99     ('toc',                 42, FALSE),
100     ('type_of_resource',    43, FALSE),
101     ('pubdate',             44, FALSE)
102 ;
103
104 -- Add a column to wide-display-entry per well-known field
105
106 DROP VIEW metabib.wide_display_entry;
107 CREATE VIEW metabib.wide_display_entry AS
108     SELECT 
109         bre.id AS source,
110         COALESCE(mcde_title.value, 'null') AS title,
111         COALESCE(mcde_author.value, 'null') AS author,
112         COALESCE(mcde_subject_geographic.value, 'null') AS subject_geographic,
113         COALESCE(mcde_subject_name.value, 'null') AS subject_name,
114         COALESCE(mcde_subject_temporal.value, 'null') AS subject_temporal,
115         COALESCE(mcde_subject_topic.value, 'null') AS subject_topic,
116         COALESCE(mcde_creators.value, 'null') AS creators,
117         COALESCE(mcde_isbn.value, 'null') AS isbn,
118         COALESCE(mcde_issn.value, 'null') AS issn,
119         COALESCE(mcde_upc.value, 'null') AS upc,
120         COALESCE(mcde_tcn.value, 'null') AS tcn,
121         COALESCE(mcde_edition.value, 'null') AS edition,
122         COALESCE(mcde_physical_description.value, 'null') AS physical_description,
123         COALESCE(mcde_publisher.value, 'null') AS publisher,
124         COALESCE(mcde_series_title.value, 'null') AS series_title,
125         COALESCE(mcde_abstract.value, 'null') AS abstract,
126         COALESCE(mcde_toc.value, 'null') AS toc,
127         COALESCE(mcde_pubdate.value, 'null') AS pubdate,
128         COALESCE(mcde_type_of_resource.value, 'null') AS type_of_resource
129     FROM biblio.record_entry bre 
130     LEFT JOIN metabib.compressed_display_entry mcde_title 
131         ON (bre.id = mcde_title.source AND mcde_title.name = 'title')
132     LEFT JOIN metabib.compressed_display_entry mcde_author 
133         ON (bre.id = mcde_author.source AND mcde_author.name = 'author')
134     LEFT JOIN metabib.compressed_display_entry mcde_subject 
135         ON (bre.id = mcde_subject.source AND mcde_subject.name = 'subject')
136     LEFT JOIN metabib.compressed_display_entry mcde_subject_geographic 
137         ON (bre.id = mcde_subject_geographic.source 
138             AND mcde_subject_geographic.name = 'subject_geographic')
139     LEFT JOIN metabib.compressed_display_entry mcde_subject_name 
140         ON (bre.id = mcde_subject_name.source 
141             AND mcde_subject_name.name = 'subject_name')
142     LEFT JOIN metabib.compressed_display_entry mcde_subject_temporal 
143         ON (bre.id = mcde_subject_temporal.source 
144             AND mcde_subject_temporal.name = 'subject_temporal')
145     LEFT JOIN metabib.compressed_display_entry mcde_subject_topic 
146         ON (bre.id = mcde_subject_topic.source 
147             AND mcde_subject_topic.name = 'subject_topic')
148     LEFT JOIN metabib.compressed_display_entry mcde_creators 
149         ON (bre.id = mcde_creators.source AND mcde_creators.name = 'creators')
150     LEFT JOIN metabib.compressed_display_entry mcde_isbn 
151         ON (bre.id = mcde_isbn.source AND mcde_isbn.name = 'isbn')
152     LEFT JOIN metabib.compressed_display_entry mcde_issn 
153         ON (bre.id = mcde_issn.source AND mcde_issn.name = 'issn')
154     LEFT JOIN metabib.compressed_display_entry mcde_upc 
155         ON (bre.id = mcde_upc.source AND mcde_upc.name = 'upc')
156     LEFT JOIN metabib.compressed_display_entry mcde_tcn 
157         ON (bre.id = mcde_tcn.source AND mcde_tcn.name = 'tcn')
158     LEFT JOIN metabib.compressed_display_entry mcde_edition 
159         ON (bre.id = mcde_edition.source AND mcde_edition.name = 'edition')
160     LEFT JOIN metabib.compressed_display_entry mcde_physical_description 
161         ON (bre.id = mcde_physical_description.source 
162             AND mcde_physical_description.name = 'physical_description')
163     LEFT JOIN metabib.compressed_display_entry mcde_publisher 
164         ON (bre.id = mcde_publisher.source AND mcde_publisher.name = 'publisher')
165     LEFT JOIN metabib.compressed_display_entry mcde_series_title 
166         ON (bre.id = mcde_series_title.source AND mcde_series_title.name = 'series_title')
167     LEFT JOIN metabib.compressed_display_entry mcde_abstract 
168         ON (bre.id = mcde_abstract.source AND mcde_abstract.name = 'abstract')
169     LEFT JOIN metabib.compressed_display_entry mcde_toc 
170         ON (bre.id = mcde_toc.source AND mcde_toc.name = 'toc')
171     LEFT JOIN metabib.compressed_display_entry mcde_pubdate 
172         ON (bre.id = mcde_pubdate.source AND mcde_pubdate.name = 'pubdate')
173     LEFT JOIN metabib.compressed_display_entry mcde_type_of_resource 
174         ON (bre.id = mcde_type_of_resource.source 
175             AND mcde_type_of_resource.name = 'type_of_resource')
176 ;
177
178 COMMIT;
179
180 /** ROLLBACK 
181
182 BEGIN;
183 DELETE FROM metabib.display_entry WHERE field IN (1,11,12,13,14,19,20,26,38,39,40,41,42,43,44);
184 DELETE FROM config.display_field_map WHERE field IN (1,11,12,13,14,19,20,26,38,39,40,41,42,43,44);
185 DELETE FROM config.metabib_field WHERE id IN (38,39,40,41,42,43,44);
186 COMMIT;
187
188 */
189
190 -- Perform a full display field reingest, since we didn't do one during
191 -- the 3.0 upgrade when display fields were introduced.
192
193 \qecho
194 \qecho Reingesting display field entries.  This may take a while.
195 \qecho This command can be stopped (control-c) and rerun later if needed:
196 \qecho
197 \qecho SELECT metabib.reingest_metabib_field_entries(id, TRUE, FALSE, TRUE, TRUE,     
198 \qecho     (SELECT ARRAY_AGG(id)::INT[] FROM config.metabib_field WHERE display_field)) 
199 \qecho     FROM biblio.record_entry WHERE id > 0; 
200 \qecho
201
202 -- avoid displaying a row per entry by selecting the total count.
203 -- NOTE: extracting display data for deleted bibs because we occasionally
204 -- display deleted bib records.
205 SELECT COUNT(*) AS bib_count FROM (
206   SELECT metabib.reingest_metabib_field_entries(id, TRUE, FALSE, TRUE, TRUE,     
207     (SELECT ARRAY_AGG(id)::INT[] FROM config.metabib_field WHERE display_field)) 
208   FROM biblio.record_entry WHERE id > 0
209 ) x;
210