3 -- SELECT evergreen.upgrade_deps_block_check('TODO', :eg_version);
5 -- NEW config.metabib_field entries
7 INSERT INTO config.metabib_field (id, field_class, name,
8 label, xpath, display_field, search_field, browse_field)
10 38, 'identifier', 'edition',
11 oils_i18n_gettext(38, 'Edition', 'cmf', 'label'),
12 $$//mods33:mods/mods33:originInfo//mods33:edition[1]$$,
16 INSERT INTO config.metabib_field (id, field_class, name,
17 label, xpath, display_field, search_field, browse_field)
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)$$,
25 INSERT INTO config.metabib_field (id, field_class, name,
26 label, xpath, display_field, search_field, browse_field)
28 40, 'identifier', 'publisher',
29 oils_i18n_gettext(40, 'Publisher', 'cmf', 'label'),
30 $$//mods33:mods/mods33:originInfo//mods33:publisher[1]$$,
34 INSERT INTO config.metabib_field (id, field_class, name,
35 label, xpath, display_field, search_field, browse_field)
37 41, 'identifier', 'abstract',
38 oils_i18n_gettext(41, 'Abstract', 'cmf', 'label'),
39 $$//mods33:mods/mods33:abstract$$,
43 INSERT INTO config.metabib_field (id, field_class, name,
44 label, xpath, display_field, search_field, browse_field)
46 42, 'identifier', 'toc',
47 oils_i18n_gettext(42, 'Table of Contents', 'cmf', 'label'),
48 $$//mods33:tableOfContents$$,
52 INSERT INTO config.metabib_field (id, field_class, name,
53 label, xpath, display_field, search_field, browse_field)
55 43, 'identifier', 'type_of_resource',
56 oils_i18n_gettext(43, 'Type of Resource', 'cmf', 'label'),
57 $$//mods33:mods/mods33:typeOfResource$$,
61 INSERT INTO config.metabib_field (id, field_class, name,
62 label, xpath, display_field, search_field, browse_field)
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]$$,
71 -- Modify existing config.metabib_field entries
73 UPDATE config.metabib_field SET display_field = TRUE WHERE id IN (
75 11, -- subject_geographic
77 13, -- subject_temporal
84 -- Map display field names to config.metabib_field entries
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),
95 ('edition', 38, FALSE),
96 ('physical_description',39, TRUE),
97 ('publisher', 40, FALSE),
98 ('abstract', 41, FALSE),
100 ('type_of_resource', 43, FALSE),
101 ('pubdate', 44, FALSE)
104 -- Add a column to wide-display-entry per well-known field
106 DROP VIEW metabib.wide_display_entry;
107 CREATE VIEW metabib.wide_display_entry AS
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')
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);
190 -- Perform a full display field reingest, since we didn't do one during
191 -- the 3.0 upgrade when display fields were introduced.
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:
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;
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