3 SELECT evergreen.upgrade_deps_block_check('1047', :eg_version); -- gmcharlt/stompro
5 CREATE TABLE config.copy_tag_type (
6 code TEXT NOT NULL PRIMARY KEY,
8 owner INTEGER NOT NULL REFERENCES actor.org_unit (id) DEFERRABLE INITIALLY DEFERRED
11 CREATE INDEX config_copy_tag_type_owner_idx
12 ON config.copy_tag_type (owner);
14 CREATE TABLE asset.copy_tag (
15 id SERIAL PRIMARY KEY,
16 tag_type TEXT REFERENCES config.copy_tag_type (code)
17 ON UPDATE CASCADE ON DELETE CASCADE,
20 index_vector tsvector NOT NULL,
22 pub BOOLEAN DEFAULT TRUE,
23 owner INTEGER NOT NULL REFERENCES actor.org_unit (id)
26 CREATE INDEX asset_copy_tag_label_idx
27 ON asset.copy_tag (label);
28 CREATE INDEX asset_copy_tag_label_lower_idx
29 ON asset.copy_tag (evergreen.lowercase(label));
30 CREATE INDEX asset_copy_tag_index_vector_idx
32 USING GIN(index_vector);
33 CREATE INDEX asset_copy_tag_tag_type_idx
34 ON asset.copy_tag (tag_type);
35 CREATE INDEX asset_copy_tag_owner_idx
36 ON asset.copy_tag (owner);
38 CREATE OR REPLACE FUNCTION asset.set_copy_tag_value () RETURNS TRIGGER AS $$
40 IF NEW.value IS NULL THEN
41 NEW.value = NEW.label;
46 $$ LANGUAGE 'plpgsql';
48 -- name of following trigger chosen to ensure it runs first
49 CREATE TRIGGER asset_copy_tag_do_value
50 BEFORE INSERT OR UPDATE ON asset.copy_tag
51 FOR EACH ROW EXECUTE PROCEDURE asset.set_copy_tag_value();
52 CREATE TRIGGER asset_copy_tag_fti_trigger
53 BEFORE UPDATE OR INSERT ON asset.copy_tag
54 FOR EACH ROW EXECUTE PROCEDURE oils_tsearch2('default');
56 CREATE TABLE asset.copy_tag_copy_map (
57 id BIGSERIAL PRIMARY KEY,
58 copy BIGINT REFERENCES asset.copy (id)
59 ON UPDATE CASCADE ON DELETE CASCADE,
60 tag INTEGER REFERENCES asset.copy_tag (id)
61 ON UPDATE CASCADE ON DELETE CASCADE
64 CREATE INDEX asset_copy_tag_copy_map_copy_idx
65 ON asset.copy_tag_copy_map (copy);
66 CREATE INDEX asset_copy_tag_copy_map_tag_idx
67 ON asset.copy_tag_copy_map (tag);
69 INSERT INTO config.copy_tag_type (code, label, owner) VALUES ('bookplate', 'Digital Bookplate', 1);
71 INSERT INTO permission.perm_list ( id, code, description ) VALUES
72 ( 590, 'ADMIN_COPY_TAG_TYPES', oils_i18n_gettext( 590,
73 'Administer copy tag types', 'ppl', 'description' )),
74 ( 591, 'ADMIN_COPY_TAG', oils_i18n_gettext( 591,
75 'Administer copy tag', 'ppl', 'description' ))
78 INSERT INTO config.org_unit_setting_type
79 (name, label, description, grp, datatype)
81 'opac.search.enable_bookplate_search',
83 'opac.search.enable_bookplate_search',
84 'Enable Digital Bookplate Search',
89 'opac.search.enable_bookplate_search',
90 'If enabled, adds a "Digital Bookplate" option to the query type selectors in the public catalog for search on copy tags.',