]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/upgrade/0265.schema.identifier-search-class.sql
LP#1806968 Teach Vandelay to pass correct auth tracker type
[working/Evergreen.git] / Open-ILS / src / sql / Pg / upgrade / 0265.schema.identifier-search-class.sql
1 BEGIN;
2
3 INSERT INTO config.upgrade_log (version) VALUES ('0265'); -- miker
4
5 ALTER TABLE config.metabib_field DROP CONSTRAINT metabib_field_field_class_check;
6
7 INSERT INTO config.metabib_class ( name, label ) VALUES ( 'identifier', oils_i18n_gettext('identifier', 'Identifier', 'cmc', 'name') );
8
9 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES
10     (17, 'identifier', 'accession', oils_i18n_gettext(17, 'Accession Number', 'cmf', 'label'), 'marcxml', $$//marcxml:datafield[tag="001"]/text()$$, TRUE );
11 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES
12     (18, 'identifier', 'isbn', oils_i18n_gettext(18, 'ISBN', 'cmf', 'label'), 'marcxml', $$//marcxml:datafield[tag="020"]/marcxml:subfield[code="a" or code="z"]/text()$$, TRUE );
13 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES
14     (19, 'identifier', 'issn', oils_i18n_gettext(19, 'ISSN', 'cmf', 'label'), 'marcxml', $$//marcxml:datafield[tag="022"]/marcxml:subfield[code="a" or code="z"]/text()$$, TRUE );
15 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES
16     (20, 'identifier', 'upc', oils_i18n_gettext(20, 'UPC', 'cmf', 'label'), 'marcxml', $$//marcxml:datafield[tag="024" and ind1="1"]/marcxml:subfield[code="a" or code="z"]/text()$$, TRUE );
17 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES
18     (21, 'identifier', 'ismn', oils_i18n_gettext(21, 'ISMN', 'cmf', 'label'), 'marcxml', $$//marcxml:datafield[tag="024" and ind1="2"]/marcxml:subfield[code="a" or code="z"]/text()$$, TRUE );
19 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES
20     (22, 'identifier', 'ean', oils_i18n_gettext(22, 'EAN', 'cmf', 'label'), 'marcxml', $$//marcxml:datafield[tag="024" and ind1="3"]/marcxml:subfield[code="a" or code="z"]/text()$$, TRUE );
21 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES
22     (23, 'identifier', 'isrc', oils_i18n_gettext(23, 'ISRC', 'cmf', 'label'), 'marcxml', $$//marcxml:datafield[tag="024" and ind1="0"]/marcxml:subfield[code="a" or code="z"]/text()$$, TRUE );
23 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES
24     (24, 'identifier', 'sici', oils_i18n_gettext(24, 'SICI', 'cmf', 'label'), 'marcxml', $$//marcxml:datafield[tag="024" and ind1="4"]/marcxml:subfield[code="a" or code="z"]/text()$$, TRUE );
25 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field ) VALUES
26     (25, 'identifier', 'bibcn', oils_i18n_gettext(25, 'Local Free-Text Call Number', 'cmf', 'label'), 'marcxml', $$//marcxml:datafield[tag="099"]//text()$$, TRUE );
27
28 SELECT SETVAL('config.metabib_field_id_seq'::TEXT, (SELECT MAX(id) FROM config.metabib_field), TRUE);
29  
30
31 DELETE FROM config.metabib_search_alias WHERE alias = 'dc.identifier';
32
33 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('id','identifier');
34 INSERT INTO config.metabib_search_alias (alias,field_class) VALUES ('dc.identifier','identifier');
35 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.isbn','identifier', 18);
36 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.issn','identifier', 19);
37 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.upc','identifier', 20);
38 INSERT INTO config.metabib_search_alias (alias,field_class,field) VALUES ('eg.callnumber','identifier', 25);
39
40 CREATE TABLE metabib.identifier_field_entry (
41         id              BIGSERIAL       PRIMARY KEY,
42         source          BIGINT          NOT NULL,
43         field           INT             NOT NULL,
44         value           TEXT            NOT NULL,
45         index_vector    tsvector        NOT NULL
46 );
47 CREATE TRIGGER metabib_identifier_field_entry_fti_trigger
48         BEFORE UPDATE OR INSERT ON metabib.identifier_field_entry
49         FOR EACH ROW EXECUTE PROCEDURE oils_tsearch2('keyword');
50
51 CREATE INDEX metabib_identifier_field_entry_index_vector_idx ON metabib.identifier_field_entry USING GIST (index_vector);
52 CREATE INDEX metabib_identifier_field_entry_value_idx ON metabib.identifier_field_entry
53     (SUBSTRING(value,1,1024)) WHERE index_vector = ''::TSVECTOR;
54 CREATE INDEX metabib_identifier_field_entry_source_idx ON metabib.identifier_field_entry (source);
55
56 ALTER TABLE metabib.identifier_field_entry ADD CONSTRAINT metabib_identifier_field_entry_source_pkey
57     FOREIGN KEY (source) REFERENCES biblio.record_entry (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED;
58 ALTER TABLE metabib.identifier_field_entry ADD CONSTRAINT metabib_identifier_field_entry_field_pkey
59     FOREIGN KEY (field) REFERENCES config.metabib_field (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED;
60
61 COMMIT;
62